(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