>>:带符号右移。正数右移高位补0,负数右移高位补1。比如:
4 >> 1,结果是2;-4 >> 1,结果是-2。-2 >> 1,结果是-1。
>>>:无符号右移。无论是正数还是负数,高位通通补0。
右移高位补1什么意思?
如-4 >>1 ====> -2
假如不考虑负数的特殊性:(特殊性考虑方向和方法,参考参考链接)
二进制:10000100 高位补1(即在左侧补1,移多少位,补多少个1,也就是在左侧,补0也一样):11000010
考虑特殊性:
二进制原码:10000100 反码 11111011 补码 11111100
右移 11111110 再返回到反码则是:11111101 返回到原码:10000010 即为-2
基本的表示的解释:
正数的原码和补码一样
负数的原码除符号位其余取反,加1得到补码,储存再计算机都是补码!
参考文章: