我写的代码运行不出来,返回值为0
#include <stdio.h>
#include <windows.h>
#include <math.h>
/*unsigned int reverse_bit(unsigned int value);
这个函数的返回值是value的二进制位模式从左到右翻转后的值
如:
在32位机器上25这个值包含下列各位:
00000000000000000000000000011001
翻转后:(2550136832)
10011000000000000000000000000000
程序结果返回:
2550136832 */
unsigned int reverse_bit(unsigned int value){
int i = 0;
int j=0;
int sum = 0;
int a[32];
for (; i < 32;i++){
a[j] = (value >> 1) & 1;
j++;
}
for (i = 31; i <= 0;i--){
sum += a[i]*pow(2,(31-i));
}
return sum;
}
int main(){
unsigned int value = 25;
printf("%d\n", reverse_bit(value));
system("pause");
return 0;
}