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)的二進制表示,對于浮點數和其他數據類型不適用。另外,移位運算不會改變原始數值本身,而是返回一個新的移位后的數值。