位移运算符就是在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。
计算规则如下:
①左移n位相当于乘以2的n次方。
②右移n位相当于除以2的n次方。这里是取商哈,余数就不要了。
③ >>>(无符号右移)
运算规则:
按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补零。对于正数来说和带符号右移相同,对于负数来说不同。 其他结构和>>相似。
示例
[java] view
plaincopyprint?
- long a = 0x3;
- long b = 30;
- long longLeft = a << b;
- System.out.println(longLeft);
- System.out.println(0x3 << 30);
- System.out.println("-----");
- System.out.println(Math.pow(-2, 31));
- System.out.println(Integer.MIN_VALUE);
- System.out.println("-----");
- System.out.println(Math.pow(2, 31) - 1);
- System.out.println(Integer.MAX_VALUE);
结果
[plain] view
plaincopyprint?
- 3221225472
- -1073741824
- -----
- -2.147483648E9
- -2147483648
- -----
- 2.147483647E9
- 2147483647
时间: 2024-10-09 11:48:27