java特殊运算符

来源:互联网 发布:读书app 知乎 编辑:程序博客网 时间:2024/06/06 02:34

&:按位与

说明:全1为1,否则为0
例子:24&23
24 = 16 + 8 = 2^4+2^3 = 0001 1000
23 = 16 + 4 + 2 + 1 = 2^4+2^2+2^1+2^0 = 0001 0111
24&23 = 0001 1000 & 0001 0111= 0001 0000 = 16

|:按位或

说明:全0为0,否则为1
例子:24|23
24 = 16 + 8 = 2^4+2^3 = 0001 1000
23 = 16 + 4 + 2 + 1 = 2^4+2^2+2^1+2^0 = 0001 0111
24|23 = 0001 1000 | 0001 0111= 0001 0000 = 0001 1111 = 15+16 = 31

^:按位异或

说明:同为0,不同1
例子:24^23
24 = 16 + 8 = 2^4+2^3 = 0001 1000
23 = 16 + 4 + 2 + 1 = 2^4+2^2+2^1+2^0 = 0001 0111
24^23 =0001 1000^ 0001 0111=0001 0000

<<:左移

说明:有符号的左移
例子:
133 = 0000 0000 0000 0000 0000 0000 1000 0101
133<<2 = 00 0000 0000 0000 0000 0000 1000 0101 00
-133 = 1000 0000 0000 0000 0000 0000 1000 0101
-133<<2 = 10 0000 0000 0000 0000 0000 1000 0101 00

>>:右移

说明:有符号的右移
例子:
133 = 0000 0000 0000 0000 0000 0000 1000 0101
133>>2 = 00 0000 0000 0000 0000 0000 0000 1000 01
-133 = 1000 0000 0000 0000 0000 0000 1000 0101
-133>>2 = 11 1000 0000 0000 0000 0000 0000 1000 01

>>>:无符号右移

说明:有符号的右移
例子:
133 = 0000 0000 0000 0000 0000 0000 1000 0101
133>>>2 = 00 0000 0000 0000 0000 0000 0000 1000 01
-133>>>2 = 00 1000 0000 0000 0000 0000 0000 1000 01

0 0