按位运算和逻辑运算的区别:
逻辑运算是将两个bool进行运算
按位运算是将整型、浮点型转化为二进制进行运算
逻辑与、按位与
∧ &
11变1 其余变0
逻辑或、按位或
∨ |
00变0 其余变1
非
!
0变1 1变0
异或
^
相同为0 不同为1
优先级
! > & > ^ > |
位运算过程:
!10&8|2
首先,把10转为二进制
1010
!一下
0101
把8转为二进制
100
和0101&一下
100
0101
0100
然后把2转为二进制:1
和0100|一下
0100
0001
0101
把101转为十进制
答案是9
逻辑运算过程:
因为字符打起来比较难,因此下面的逻辑运算符以相对的位运算符代替
a=0 b=0 c=1 d=1
(a|b)&(!c&a)=0
(a&c)|(!a|!d)=1
(a&c&d&b)|(!a|b|c)=1
大概应该明白了吧