问一下各位大神,有会这道题的么?求代码,急!
#include<stdio.h>
#include<stdlib.h>
int main()
{
int n = 0;
int num =0;
int i = 0;
scanf("%d", &n);
for (i = 0; i < 32; i++)
{
num = num << 1; //当num的最低位保存了数据之后再左移
num |= ((n>>i)&1); //将n的第i个bit位与num按位或,将这一位保存到num中
}
printf( "n=%d num=%d\n", n,num);
system( "pause");
return 0;
}
unsigned int reverse_bit(int num)
{
int i;
int bit;
unsigned new_num = 0;
for (i = 0; i < 32; i++)
{
bit = num & 1; //取出最后一位
new_num <<= 1; //新数左移
new_num =new_num | bit; //把刚取出的一位加到新数
num >>= 1; //原数右移,准备取第二位
}
return new_num;
}