两者都为1为1,否则为0。
1&1=1,1&0=0,0&1=0,0&0=0
或运算:|
两者都为0为0,否则为1
1|1=1,1|0=1,0|1=1,0|0=0
非运算:~
1取0,0取1
~1=0,~0=1
~(10001)=01110
异或运算
两者相等为0,不等为1
1^1=0,1^0=1,0^1=1,0^0=0
扩展资料:
位运算符有:
&(按位与)、|(按位或)、^(按位异或)、~(按位取反)。
其中,按位取反运算符是单目运算符,其余均为双目运算符。
位运算符的优先级从高到低,依次为~、&、^、|,
其中~的结合方向自右至左,且优先级高于算术运算符,其余运算符的结合方向都是自左至右,且优先级低于关系运算符。
十六进制转化为2进制不用这么做,
将每位十六进制变成4位二进制即可,所以
11(16) = 0001 0001(2)
~0x11 这个0x11是整型常量
所以 = ~0x 0011
= 0xFFEE
0x11=0x0011= 0000 0000 0001 0001(不用转成十进制再转二进制,太麻烦,一个16进制的位直接转成四位二进制的位就可以了)
再取反就得到1111 1111 1110 1110即0xFFEE
问题的关键是要把位补齐了,前面的0不能省了呀