★编写函数:unsigned int reverse_bit(unsigned int value);这个函数的返回值value的二进制位模式从左到右翻转后的值。
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
unsigned int  reverse_bit(unsigned int value)
{
unsigned int sum = 0;
int arr[32], a = 0, b = 0;
int count1 = 0, i = 0;
for (i = 0; i < 32; i++)                        //先得到输入数的二进制序列存入数组中
{
a = value & 1;
b = value >> 1;
value = b;
arr[i] = a;
}
printf("输入值的二进制序列为:");                //然后逆向输出
for (i = 31; i >= 0; i--)
{
count1++;
if (count1 % 9 == 0)                            //count用于序列每八位整齐排列
{
count1++;
printf(" ");
}
printf("%d", arr[i]);
}
printf("\n");
int count2 = 0;
printf("翻转后的二进制序列为:");
for (i = 0; i < 32; i++)
{
count2++;
if (count2 % 9 == 0)
{
count2++;
printf(" ");
}
sum +=((value>>i)&1)*pow(2, 31 - i);    //求得该二进制序列的翻转序列,pow函数需调用math库
printf("%d", arr[i]);
}
return sum;
}
unsigned int return_bit(unsigned int value)        //return_bit函数用于求得返回值
{
unsigned int ret = 0;
int i = 0;
for (i = 0; i < 32; i++)
{
ret <<= 1;
ret |= ((value >> i) & 1);
}
return ret;
}
int main()
{
unsigned int value = 0;
int ret = 0;
printf("请输入一个正数:");
scanf("%d",&value);
reverse_bit(value);
ret = return_bit(value);
printf("\nBack_Value:%u\n", return_bit(value));
system("pause");
return 0;
}

函数的返回值value的二进制位模式从左到右翻转后的值_函数的返回值value的二进制位模式从左