主题 : 关于linux下字符串格式化为16进制的问题,有赏 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 26755
精华: 0
发帖: 101
金钱: 505 两
威望: 101 点
综合积分: 202 分
注册时间: 2010-08-13
最后登录: 2017-09-13
楼主  发表于: 2012-06-12 10:37

 关于linux下字符串格式化为16进制的问题,有赏

unsigned char buf[100];
const char *str = "AA750104000000DA";
int num,i;
sscanf(str,"%s %d",buf,&num);
int lgth=strlen(str);
for (i=0; i< lgth/2; i++)
{
  sscanf((const char *)str+2*i,"%02x",buf + i);
  printf("format cmd  %2x   \n",(unsigned char)buf );
}
我用gcc 编译之后能按正确的打印如下:
format cmd AA
format cmd 75
format cmd 01
format cmd 04
format cmd 00
format cmd 00
format cmd 00
format cmd DA
但是我用arm-linux-gcc 编译之后,在嵌入式板子上 打印如下:
format cmd AA
format cmd 00
format cmd 00
format cmd 00
format cmd 00
format cmd 00
format cmd 00
format cmd 00
请问一下这是什么原因