最近学习碰到这样一个问题
一道面试题
unsigned char a=0xA5;
unsigned char b=~a>>4;
问你 b 的值是多少
我们明白 ~ 的优先级高于 >> ,所以是先进行取反在右移四位
首先错误的解法:
a=0xA5,十进制为165,二进制为 10100101
转换为int型高位补0(因为4是int型)后,移位为00000101;
答案为0x5 即 5 错。。。。。
正解:
转换为int型高位是补1,移位为11110101;
答案为245
最近学习碰到这样一个问题
一道面试题
unsigned char a=0xA5;
unsigned char b=~a>>4;
问你 b 的值是多少
我们明白 ~ 的优先级高于 >> ,所以是先进行取反在右移四位
首先错误的解法:
a=0xA5,十进制为165,二进制为 10100101
转换为int型高位补0(因为4是int型)后,移位为00000101;
答案为0x5 即 5 错。。。。。
正解:
转换为int型高位是补1,移位为11110101;
答案为245