为什么-1无符号右移-1位等于+1?

 short a = -1 ;

    System.out.println(Integer.toBinaryString(a)) ;

    a >>>= -1 ;

    System.out.println(Integer.toBinaryString(a)) ;//输出a为1.

无符号右移-1位是怎么移动的呢? 该怎么思考这个问题?


素胚勾勒不出你
浏览 518回答 1
1回答

慕哥6287543

一般位移的位数只取最后几位,相当于对a的位数取模再右移。-1 mod 16就等于15了。不清楚java的细节,不过看起来也是这么做的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java