我的目标是通过为每个位分配值来构造一个char变量,即我需要为每个位分配0和1。操作字符变量的位
我做了下面的代码:
char packet;
int bit;
packet &= ~(1 << 0);
packet |= (1 << 1);
printf("\n Checking each bit of packet: \n");
for(int x=0;x<2;x++)
{
bit = packet & (1 << x);
printf("\nBit [%d] of packet : %d", x, bit);
}
但我得到的输出是:
Bit[0] of packet : 0 Bit[1] of packet : 2
这里有什么问题吗?
目前尚不清楚你实际要做什么。你期望发生什么? – yan 2011-03-31 04:49:39
这就是你的代码所做的。设g =垃圾(即未初始化的存储位)。您从“g g g g g g g g”开始。首先按位运算创建“g g g g g g 0”,第二个运算创建“g g g g g g 0 0”。而你的循环只是输出[0] = 0x00(第一位是0)。和[1] = 0x02(第二位是1)。所以基本上,正如我们许多人经常说的那样,“按设计工作” – DXM 2011-03-31 04:59:43