循环比特c ++

时间:2016-06-24 19:31:48

标签: bit-manipulation bit-shift

遇到一个问题,要反转无符号整数的位。尝试了不同的方法。但是,我对逐位运算符的工作原理并不十分熟悉。有人可以指出这里的根本错误吗?

unsigned int reverse(unsigned int A)
{
unsigned int c=0;
int a=0;
while(a < 32)
{
    c = c << 1;
    c = c |  ( A & (1 << a) );
    a++;
}
return c;

1 个答案:

答案 0 :(得分:0)

在两种情况下你都向左移动1并获得相同的结果。尝试使用10000 ...(32位)并将其向右移动而不是1&lt;&lt;一个

相关问题