Java位运算

Java常用的位运算:

带符号右移 >>

对于正数, 带符号右移 >> 会把所有的位右移,并在最前面补0
对于负数, 带符号右移 >> 会把所有的位右移,并在最前面补1
比如 int i= 5; int类型在Java中是4个字节,也就是32位。
他的二进制表示是 :
0000 0000 0000 0000 0000 0000 0000 0101
右移i>>2,对于正数:
0000 0000 0000 0000 0000 0000 0000 0001

带符号左移

对于正数, 带符号右移 >> 会把所有的位右移,并在最前面补0
对于负数, 带符号右移 >> 会把所有的位右移,并在最前面补1

无符号右移>>>

如果是一个负数,那么对应的二进制的第一位是1
无符号右移>>>会把第一位的1也向右移动,导致移动后,第一位变成0
这样就会使得负数在无符号右移后,得到一个正数

你可能感兴趣的:(Java位运算)