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

一个很小疑问,求解答

2013-07-21 
一个小小的疑问,求解答这样一个简易测试程序,在VC6下运行:十六进制[解决办法]符号扩充呗. 0x9F 是一个负数

一个小小的疑问,求解答
这样一个简易测试程序,在VC6下运行:

                                                  十六进制                                              
[解决办法]
符号扩充呗. 0x9F 是一个负数, -97, 
int 里面对应 -97 的数的十六进制就是 ffffff9f
[解决办法]
那就给他屏蔽掉
printf("%x %x\n",szTmp[0]&0xff,szTmp[1]&0xff);

[解决办法]
#include <stdio.h>
int main(void)
{
   char szTmp[5] = "\x9F\x36";
   printf("%x %x\n",szTmp[0],szTmp[1]);
   printf("%x %x\n",(unsigned char)szTmp[0],szTmp[1]);
   return 0;
}
//ffffff9f 36
//9f 36

说明对于你的编译器: char其实是signed char

热点排行