16进制数转为2进制数的问题‘0’换了一个位置出现乱码~ 茫然
#include<stdio.h>int main()
{
int i,j=31,m;
char n[50];
printf("qing shu ru:");
scanf("%x",&i);
for(m=0;m<32;m++)
{
n[m]=(i>>j)&0x1;
j--;
}
printf("zhuan huan hou:");
for(m=0;m<32;m++)
printf("%c",n[m]+'0');
printf("\n");
getch();
return 0;
}
#include<stdio.h>
int main()
{
int i,j=31,m;
char n[50];
printf("qing shu ru:");
scanf("%x",&i);
for(m=0;m<32;m++)
{
n[m]=(i>>j)&0x1+'0';
j--;
}
printf("zhuan huan hou:");
for(m=0;m<32;m++)
printf("%c",n[m]);
printf("\n");
getch();
return 0;
}
'0'换了一个位置,结果上面的正常,下面的乱码,求真相
或者有没有更本质的东西 侃侃
[ 本帖最后由 醉酒大哥 于 2011-1-17 20:26 编辑 ]