java左移、右移、无符号右移
右移
System.out.println(-3>>1);
結(jié)果是-2,為什么會(huì)是-2呢?下面我們來(lái)看一下.
System.out.println(Integer.toHexString(-3));
得到-3的16進(jìn)制為fffffffd(此為-3的補(bǔ)碼,計(jì)算機(jī)中負(fù)數(shù)用補(bǔ)碼表示).
轉(zhuǎn)換成2進(jìn)制為1111 1111 1111 1111 1111 1111 1111 1101
右移一位為1111 1111 1111 1111 1111 1111 1111 1110,顯而易見(jiàn)此為-2補(bǔ)碼.
左移
System.out.println(-3<<1);左移相對(duì)來(lái)說(shuō)比較簡(jiǎn)單.
1111 1111 1111 1111 1111 1111 1111 1101左移一位為
1111 1111 1111 1111 1111 1111 1111 1010,其為-6的補(bǔ)碼.
無(wú)符號(hào)右移
System.out.println(-3>>>1);
1111 1111 1111 1111 1111 1111 1111 1101無(wú)符號(hào)右移,高位補(bǔ)0,
01111 1111 1111 1111 1111 1111 1111 1110,其為2147483646的原碼.
轉(zhuǎn)載于:https://www.cnblogs.com/Alan0218/articles/8491749.html
總結(jié)
以上是生活随笔為你收集整理的java左移、右移、无符号右移的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 分页,主要用于python django
- 下一篇: 节后综合症太痛苦,人工智能有“良方”