我只想使用NOT ( ~ )
运算符反转整数的二进制值但是当我这样做时
struct rev
{
unsigned i:3; //for only 3 bits means 000 to 111
};
r.i = 5;
printf(" Reverse of %d = %u \n",r.i,~(r.i));
它给了我Reverse of 5 = 4294967290
但我想要Reverse of 5 = 2
,因为我使用的是 3 位,所以如果我不这样做,那么 5 将更改为 2,但它没有像这样显示,它给了我结果,因为fffffffa
我不知道为什么。
意味着我想要的是仅通过 NOT 运算符交换 1 和 0。我想要
0 - 7
1 - 6
2 - 5
... 像这样。
谢谢。