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

(value>>16) 和 (value>>16) & 0x00FF的结果区别吗,该怎么解决

2012-05-15 
(value16) 和 (value16) & 0x00FF的结果区别吗int value 0xABCD0123(value16) 和 (value16) &

(value>>16) 和 (value>>16) & 0x00FF的结果区别吗

int value = 0xABCD0123;

(value>>16) 和 (value>>16) & 0x00FF 的结果区别吗

为什么要& 0x00FF


?????????????????????????????????????????????????????????????????????????????????????????????????


[解决办法]
若 value 是有符号的数据,则右移时高位填充符号位
对无符号数据来说,右移时高位补0

你的value是有符号的数据,显然:
(value>>16) 和 (value>>16) & 0x00FF 的结果并不总是不一样的。

& 0x00FF 仅保留 value 数据的低8位,其他位全清0

热点排行