嗨我目前有一个二进制字符串,我向左移动一次。
char bin[] = "01010001";
printf("Binary number = %s \n", bin);
printf("Binary number shifted by 1 to the left = %s \n", (bin+1) );
输出:
Binary number = 01010001
Binary number shifted by 1 to the left = 1010001
移位的版本应该是:10100010而不是1010001.有谁知道为什么我总是丢失最不重要的位?
答案 0 :(得分:0)
我猜您的代码是用C语言编写的?
然后你不在这里对位执行移位操作。
而是声明一个char数组(指针)并将其指针位置递增一(通过bin+1
)。
结果就是你所看到的。最左边的角色正在切断。
对于实际移位操作,使用数值变量,移位运算符(<<
,>>
)并以二进制表示形式打印变量(找到一种方式,例如here)。