请教一个简单的C的问题
unsigned char t2=0xff;
cout<<~t2<<endl;
t2取反输出为什么是-256
[解决办法]
~是按位取反,在cout下输出时把它转化为一个整数,0xff == 11111111,VC6下整数为32位,取反后变为11111111111111111111111100000000,对应的32位整数就是-256。 LZ用一下电脑上的计算器得到结果是一样的。
发布时间: 2012-03-18 13:55:39 作者: rapoo
请教一个简单的C的问题
unsigned char t2=0xff;
cout<<~t2<<endl;
t2取反输出为什么是-256
[解决办法]
~是按位取反,在cout下输出时把它转化为一个整数,0xff == 11111111,VC6下整数为32位,取反后变为11111111111111111111111100000000,对应的32位整数就是-256。 LZ用一下电脑上的计算器得到结果是一样的。