循环位C ++
Looping over bits c++
遇到了一个反转无符号整数位的问题。尝试了不同的方法。但是,我不太熟悉按位运算符的工作原理。有人可以指出这里的根本错误吗?
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 并得到相同的结果。尝试使用 10000...(32 位)并将其右移而不是 1 << a
遇到了一个反转无符号整数位的问题。尝试了不同的方法。但是,我不太熟悉按位运算符的工作原理。有人可以指出这里的根本错误吗?
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 并得到相同的结果。尝试使用 10000...(32 位)并将其右移而不是 1 << a