////1.编写函数:
//unsigned int reverse_bit(unsigned int value);
//这个函数的返回值value的二进制位模式从左到右翻转后的值。
//
//如:
//在32位机器上25这个值包含下列各位:
//00000000000000000000000000011001
//翻转后:(2550136832)
//10011000000000000000000000000000
//程序结果返回:
//2550136832
#include<stdio.h>
#include<windows.h>
#include<math.h>
unsigned int reverse_bit(unsigned int value)
{
int b = 0;
int i, j=31;
//unsigned int value;
printf("Please input:\n");
scanf_s("%d",&value);
for (i = 0; i < 32; i++)
{
while (value)
{
//a[i++] = value % 2;
b+= ((value % 2)*pow(2.0, j--));//取余2之后就是已经翻转后的二进制数,再从最高位分别乘以2的n次方(31次方到0次方),//将其转换为十进制整数
value = value >> 1;
}
}
printf("%u\n", b);
//return value;
}
int main()
{
unsigned int value = 0, ret;
ret= reverse_bit( value);
system("pause");
return 0;
}
编写函数:unsigned int reverse_bit(unsigned int value);这个函数的返回值value的二进制位模式从左到右翻转后的值。
猜你喜欢
转载自blog.csdn.net/na_hanqiannan/article/details/80243817
今日推荐
周排行