要求:编写函数:
unsigned int reverse_bit(unsigned int value);
这个函数的返回值value的二进制位模式从左到右翻转后的值。
//如:
//在32位机器上25这个值包含下列各位:
//00000000000000000000000000011001
//翻转后:(2550136832)
//10011000000000000000000000000000
//程序结果返回:
//2550136832
解析:用两个for循环,由于32位机器,所以需要循环32次,然后取出最低位,左移到相应的位置。
//unsigned int reverse_bit(unsigned int value)
//{
// int i = 0;
// for (i = 0; i < 32; i++)
// {
// unsigned int ret = 0;
// int i = 0;
// for (i = 0; i < 32; i++)
// {
// ret += ((value >> i) & 1) << (31 - i);//取出最低位,左移到相应位置
// }
// return ret;
// }
//}
//
//int main()
//{
// unsigned int num = 0;
// printf("请输入一个数:");
// scanf_s("%d", &num);
// printf("翻转后的数为:%u\n", reverse_bit(num));
// system("pause");
// return 0;
//}