麻烦看看我这个程序
程序代码:
#include<stdio.h> #include<math.h> #define LEN 32//数组长度为32 unsigned int reverse_bits( unsigned int value); int main(void) { unsigned int n; unsigned int value; puts("enter a number:"); scanf("%d",&n); value=reverse_bits(n); printf("After reverse_bits:\n"); printf("%d\n",value); return 0; } unsigned int reverse_bits( unsigned int value)//转换成二进制位。 { unsigned int num[LEN]; unsigned int val=0; int i; for(i=0;i<LEN;i++)//反序赋值。 { num[i]=value%2; value/=2; } for(i=0;i<LEN;i++) printf("%d",num[i]); putchar('\n'); for(i=0;i<LEN;i++)//将反序的二进制转换成十进制。 { val+=num[i]*(unsigned int)pow(2,(LEN-i-1)); } return val; }
额,运行不对,看看哪点的问题,我实在找不到额。
[ 本帖最后由 scott_dw 于 2011-9-14 22:05 编辑 ]