含义 Pascal语言 C语言 Java
按位与 a and b a & b a & b
按位或 a or b a | b a | b
按位异或 a xor b a ^ b a ^ b
按位取反 not a ~a ~a
左移 a shl b a << b a << b
带符号右移 a shr b a >> b a >> b
无符号右移 / / a>>> b
//
&与:相同位的两个数字都为1,则为1;若有一个不为1,则为0。
00101
11100
(&;或者and)
----------------
00100
//
|或:相同位只要一个为1即为1。
00101
11100
(|或者or)
----------------
11101
//
^异或:相同位相同为0,不同为1。
00101
11100
(^或者xor)
----------------
11001
//
左移,右移多出的那一位为0
//
优先级:
C语言中位运算符之间,按优先级顺序排列为
1 ~
2 <<、>>
3 &
4 ^
5 |
6 &=、^=、|=、<<=、>>=
简单操作: