首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

printf("%02x")乱码.printf("%x")通常

2012-10-19 
printf(%02x)乱码.printf(%x)正常memset(buf,0,sizeof(buf))va_start(arg, pszFmt)vsnprintf(buf, s

printf("%02x")乱码.printf("%x")正常
memset(buf,0,sizeof(buf));
  va_start(arg, pszFmt); 
  vsnprintf(buf, sizeof(buf), pszFmt, arg); 
  类似于printf的函数。代码在上面。

[解决办法]
你要注意, 0xX使用是要注意有符号,无符号问题.

最好是强制转换成无符号数.

printf("\r\n12222SWB=%02x\r\n",(BYTE)helll); //BYTE 是 unsigned char

[解决办法]

探讨
printf("\r\n12222.SWB=%02x\r\n",helll);有问题。

printf("\r\n12222SWB=%02x\r\n",helll); 不加点就会显示正常!!

[解决办法]
你的参数不够哦,在编译时应该会给你警告提示。当然你需要打开警告提示。
[解决办法]
参数说明:
%x或%X期待unsigned int,无符号延展。所以
C/C++ code
unsigned char c = 0x80; unsigned int b = c; //0x00 00 00 00 80 

热点排行