十六进制字符数据与二进制字符数据转换问题
#include"stdio.h"#include"stdlib.h"
void main()
{
int i,data;
char e;
char yy[20];
char ch[10]="5fd6";
data=strtol(ch,NULL,16); /*将十六进制字符数据转换为整型数据*/
itoa(data,yy,2); /*将数据转换为二进制字符数据存入yy中*/
printf("%s\n",yy);
}
关键问题在于printf语句,应该是printf("%s\n",yy)呢还是printf("%d\n",yy)呢?若是printf("%s\n",yy),
则结果是101111111010110,若是printf("%d\n",yy),则结果是1245024.