0
点赞
收藏
分享

微信扫一扫

Java >>和>>>的区别

Java >>和>>>的区别_运输费

“>>是有符号位移,>>>是无符号位移”,如果移动的是一个非负数,这两个是没有任何区别的比如我们看下

public static void main(String args[]) {
System.out.println();
int num = 10000;
System.out.println(num + "的二进制表示: " + Util.bitInt32(num));
System.out.println(num + "有符号位移之后的二进制表示:" + Util.bitInt32(num >> 3));
System.out.println(num + "无符号位移之后的二进制表示:" + Util.bitInt32(num >>> 3));
}

我们再来看下运行结果

10000的二进制表示:           00000000 00000000 00100111 00010000 
10000有符号位移之后的二进制表示:00000000 00000000 00000100 11100010
10000无符号位移之后的二进制表示:00000000 00000000 00000100 11100010

“>>和>>>主要是对负数会有区别,我们来看下”

public static void main(String args[]) {
System.out.println();
int num = -10000;
System.out.println(num + "的二进制表示: " + Util.bitInt32(num));
System.out.println(num + "有符号位移之后的二进制表示:" + Util.bitInt32(num >> 3));
System.out.println(num + "无符号位移之后的二进制表示:" + Util.bitInt32(num >>> 3));
}

这里把10000改为-10000,再来看下运行结果

-10000的二进制表示:           11111111 11111111 11011000 11110000 
-10000有符号位移之后的二进制表示:11111111 11111111 11111011 00011110
-10000无符号位移之后的二进制表示:00011111 11111111 11111011 00011110


举报

相关推荐

0 条评论