java位移运算符2 转
https://blog.csdn.net/xxx134617/article/details/7454774
java中int類型占4個(gè)字節(jié),二進(jìn)制用補(bǔ)碼表示:
3的二進(jìn)制表示:?00000000 00000000 00000000 00000011
-3的二進(jìn)制表示:11111111 11111111 11111111 11111101
?
1.左移<<:左移位運(yùn)算符(<<)能將運(yùn)算符左邊的運(yùn)算對象向左移動(dòng)運(yùn)算符右側(cè)指定的位數(shù)(在低位補(bǔ)0).
如:
3<<1=00000000 00000000 00000000 00000110=6;
-3<<1=11111111 11111111 11111111 11111010=-6;
2.有符號右移>>:“有符號”右移位運(yùn)算符(>>)則將運(yùn)算符左邊的運(yùn)算對象向右移動(dòng)運(yùn)算符右側(cè)指定的位數(shù)。“有符號”右移位運(yùn)算符使用 了“符號擴(kuò)展”:若值為正,則在高位插入0;若值為負(fù),則在高位插入1。
3>>1=00000000 00000000 00000000 00000001=1;
-3>>1=11111111 11111111 11111111 11111110=-2;
3.無符號右移:
3>>>1=00000000 00000000 00000000 00000001=1;
-3>>>1=01111111 11111111 11111111 11111110=2147483646;
---------------------
計(jì)算過程:
-3的源碼:
10000000 00000000 00000000 00000011
反碼:除符號位取反
11111111 11111111 11111111 11111100
補(bǔ)碼:除符號位+1
11111111 11111111 11111111 11111101
-3<<1
計(jì)算機(jī)中的二進(jìn)制表示(-3的二進(jìn)制補(bǔ)碼)
11111111 11111111 11111111 11111010
轉(zhuǎn)十進(jìn)制數(shù)
1)除去符號位減1
11111111 11111111 11111111 11111001?
2)除去符號位,按位取反;結(jié)果就是負(fù)數(shù)的源碼;
10000000 00000000 00000000 00000110?
- 6
?
轉(zhuǎn)載于:https://www.cnblogs.com/cici-new/p/10493639.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的java位移运算符2 转的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 100个成语故事大全
- 下一篇: [ICPC 北京 2017 J题]Hih