麻烦看看我这个程序
程序代码:#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 编辑 ]










原来讨论POW函数啊 !!
顶