您的位置:首页 > 其它

CCS 调试发现两个无符号short类型a,b; a = ~b, 但a != ~b

2015-07-08 22:34 197 查看
在调试ccs中, 有如下类似代码



发现unsigned short b 取反的临时变量是0xffff_0000 ,可见编译器把它扩展成32位无符号整形,然后取反。从而导致 a 和 ~b结果不一致。

如果改为short 类型,则比较相同,可见 b 扩展成32位整型填充高16位时会考虑b的类型,如果b是无符号类型的则高位填充0,如果b是有符号类型的则高位填充填充b的MSB。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: