Java 内部采用二进制补码运算,自动发送上溢出(乘法)和下溢出(除法)。
short, byte,char 在移位之前首先将数据转换为 int,然后再移位,移位之后的类型为 int。
三种移位符号除了对做操作数有操作规则外,其实对右操作数也有操作规则。如果左操作数(转换之后的)是 int,那么右操作数只有低 5 位有效,为什么?因为 int 总共就 32 位,如:23 >> 33, 结果与 23 >>1 是一样的,都是 11;同理,如果左边操作数是 long,那么右边操作数只有低 6 位有效。
作者:米途小码
链接:http://www.jianshu.com/p/0236b51b903f
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
一、左移运算符(<<)
低位补 0.
二、右移运算符(>>)
正数:高位补 0;
负数:高位补 1。
三、无符号右移运算符(>>>)
高位补 0。
四、移位运算优点
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于