回 帖 发 新 帖 刷新版面

主题:优先级问题

#include <iostream>
using namespace std;

int main()
{
    unsigned char a = 0xa5;
    unsigned char b = (~a)>>4;
//    b = b>>4;
    printf("%d\n",b);
    return 0;
}
这个优先级是怎么回事啊?觉得有问题啊?

回复列表 (共2个回复)

沙发

什么怎么回事啊?什么问题呀?你能不能把话说清楚???

a 类型unsigned char,值 10100101
~a 类型int,值 11111111 11111111 11111111 01011010
(~a)>>4 类型int,值 11111111 11111111 11111111 11110101
b 类型unsigned char,值 11110101,即十进制245

板凳

原先没有想到类型转换为整形,取位非的时候类型转换,是因为后面移位的原因吧?

我来回复

您尚未登录,请登录后再回复。点此登录或注册