Java中右移(>>)和逻辑右移(>>>)的区别

原文地址: https://stackoverflow.com/que...

>> 是算术右移 (arithmetic shift right), >>> 是逻辑右移 (logical shift right).

再算术位移中, 数字的符号位是保持不变的.

例如: -2 用八进制表示就是 11111110, 最左边表示符号位, 如果是 1 的话则表示是负数. 将 -2 使用算术右移一位则会得到 11111111, 也就是 -1.

而逻辑位移则不管符号位是啥, 就是将右移后最左边的位置用 0 填充. 将 -2 进行算术右移一位将得到 01111111.

欢迎访问我的博客: http://blog.duhbb.com/

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