c语言if ( ~0 == a | ~(0x04)),这句话什么意思

日期:2021-10-26 10:47:06 人气:1

c语言if ( ~0 == a | ~(0x04)),这句话什么意思

运算符位或

|

的优先级低于比较运算符,但是题目的意思应该要表达的是
~0==(a|~(0x04))
0x04的二进制表示为
0000
0100,取反后为1111
1011,该数与a相与,若a的二进制第三位是1,则结果为1111
1111,若a的第三位是0,则结果为1111
1011,然后与~0比较,因为~0的二进制表示为全1,所以整个语句的意思就是判断a对应二进制的第三位是否为1
    A+
热门评论