阅读量:2
Java中移位运算有三种:左移运算(<<)、右移运算(>>)和无符号右移运算(>>>)。
左移运算(<<):将一个数的各二进制位全部左移若干位,高位丢弃,低位补0。左移n位,相当于乘以2的n次方。例如:3 << 2 = 12,即3左移2位等于12。
右移运算(>>):将一个数的各二进制位全部右移若干位,低位丢弃,高位补上符号位。右移n位,相当于除以2的n次方取整。例如:12 >> 2 = 3,即12右移2位等于3。
无符号右移运算(>>>):将一个数的各二进制位全部右移若干位,低位丢弃,高位补0。无符号右移n位,相当于除以2的n次方取整。例如:-3 >>> 1 = 2147483646,即-3无符号右移1位等于2147483646。
需要注意的是,移位运算只能应用于整型数据(byte、short、int、long)的二进制表示,对于浮点数和其他数据类型不适用。另外,移位运算不会改变原始数值本身,而是返回一个新的移位后的数值。