小编Tim*_*Tim的帖子

C中的位移位

int x = 2;

x = rotateInt('L', x, 1); // should return 4

x = rotateInt('R', x, 3); // should return 64
Run Code Online (Sandbox Code Playgroud)

这是代码,有人可以检查它,让我知道错误是什么?

编译成功,但它说Segmentation Fault我执行它.

int rotateInt(char direction, unsigned int x, int y)
{
  int i;

  for(i = 0; i < y; i++)
  {  

    if(direction == 'R')
    {
       if((x & 1) == 1)
       {
         x = x >> 1;
         x = (x ^ 128);     
       }
       else    
         x = x >> 1;
     }
     else if(direction == 'L')
     {
       if((x …
Run Code Online (Sandbox Code Playgroud)

c bit-manipulation shift

3
推荐指数
1
解决办法
710
查看次数

在C中使用char类型进行位交换

数据类型为char,模式如下:

源字节:[0] [1] [2] [3] [4] [5] [6] [7]

目的地:[6] [7] [4] [5] [2] [3] [0] [1]

例如,如果我将char,29传递给此函数,它将执行交换并返回一个char类型值,即116.

我怎样才能进行交换?

谢谢.

========================

只是想知道我是否可以这样做?

unsigned char mask = 128;
char num = 0, value1 = 29;
int i, a;

for(i = 0; i < 8; i++) {
  if (i == 0 || i == 1 || i == 6 || i == 7)
    a = 6;
  else
    a = 2;

  if(i < 4)
    num = ((value1 & mask) >> a);
  else
    num …
Run Code Online (Sandbox Code Playgroud)

c swap bit-manipulation char

1
推荐指数
1
解决办法
2082
查看次数

C中任何整数的旋转位

将整数 2 传递给此函数,然后返回一个整数 4

x = 2;
x = rotateInt('L', x, 1); 
Run Code Online (Sandbox Code Playgroud)

(左移1位)

示例:00000010 -> 向左旋转 1 -> 00000100

但如果我通过这个:

x = rotateInt('R', x, 3); 
Run Code Online (Sandbox Code Playgroud)

它将返回 64, 01000000

这是代码,有人可以纠正错误...谢谢

int rotateInt(char direction, unsigned int x, int y)
{
    unsigned int mask = 0;
    int num = 0, result = 0;
    int i;

    for (i = 0; i < y; i++)
    {     
        if (direction == 'R')
        {
            if ((x & 1) == 1)     
                x = (x ^ 129);
            else    
                x = …
Run Code Online (Sandbox Code Playgroud)

c integer rotation bit

1
推荐指数
2
解决办法
2万
查看次数

如何将多个*argv组合成char*类型的消息

我编写了一个TCP套接字客户端程序,允许用户输入IP,端口和消息作为参数.

它像是:

./a.out 127.0.0.1 555 test message
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何将"test"(argv[3])和"message"(argv[4])等组合成一个char *message

c argv

1
推荐指数
1
解决办法
736
查看次数

标签 统计

c ×4

bit-manipulation ×2

argv ×1

bit ×1

char ×1

integer ×1

rotation ×1

shift ×1

swap ×1