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