关闭

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

标签: 调试ccs
271人阅读 评论(0) 收藏 举报

在调试ccs中, 有如下类似代码


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

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1150次
    • 积分:51
    • 等级:
    • 排名:千里之外
    • 原创:3篇
    • 转载:0篇
    • 译文:1篇
    • 评论:0条
    文章存档