在其他博客上看到有小伙伴对这个好像不是很懂,这里就写代码看看实际情况吧,顺便偷偷水一篇博客(xiao sheng bb)
首先要说明一下
">>>"是无符号右移
">>"是有符号右移
什么是无符号?我们简单理解一下,就是移动的时候不管符号,直接进行数据运算,有符号反之
闲话少说,直接上演示代码:
public static void main(String[] args) {
int a=-2;
int b=-2;
System.out.println("原始数据:");
System.out.println(a);
System.out.println("☝的二进制编码"+Integer.toBinaryString(-2));
System.out.println("经过运算后(向右移动一位)的数据:");
//无符号运算右移
System.out.println(a>>>1);
System.out.println("☝的二进制编码"+Integer.toBinaryString(2147483647));
//有符号运算右移
System.out.println(b>>1);
System.out.println("☝的二进制编码"+Integer.toBinaryString(-1));
}
运行结果如下:
原始数据:
-2
☝的二进制编码11111111111111111111111111111110
经过运算后(向右移动一位)的数据:
2147483647
☝的二进制编码1111111111111111111111111111111
-1
☝的二进制编码11111111111111111111111111111111
关于负数二进制的问题大家可以跳转到这篇文章了解一下
小结
这期咱们的内容就到这里啦,大家记得一键三连=,=