二进制位运算 左移与右移
(1).二進制中負數的計算
負數以正數的補碼表示
原碼:一個整數按照絕對值的大小轉化成二進制的數
反碼:將二進制數按位取反
補碼:反碼加 1
以-14 舉例
原碼:14 即 00000000 00000000 00000000 00001110
反碼: 11111111 11111111 11111111 11110001
補碼: 11111111 11111111 11111111 11110010
所以-14 的二進制是 11111111 11111111 11111111 11110010
假設 我們得到 二進制讓我們求整數 就是倒著來取相反數
如二進制是 11111111 11111111 11111111 11110010
得到反碼減1 11111111 11111111 11111111 11110001
原碼: 00000000 00000000 00000000 00001110
即 1110 = 14 所以取反 就是-14
(2).<<左移運算符
1.將一個運算對象的各二進制位全部左移若干位(左邊的二進制丟棄,右邊補0)
(注意:java中 整數位 32位)
11 << 2 = 44
-14 <<2 =-56
-14的二進制(11111111 11111111 11111111 11110010)左移2位 為
11111111 11111111 11111111 11001000 結果為(-56)
【補充】:對于左移,直觀的理解為,對于正數來說,左移相當于乘以2(但效率比乘法高);對于負數來說,沒有直觀的理解。
(3).>>右移運算符
將一個運算對象的各二進制位全部右移若干位,正數左補0,負數左補1.
4 >> 2 = 1;
-14 >> 2 = -4;
【補充】:對于右移,直觀的理解為,對于正數來說,右1移相當于除以2(但效率比除法高);對于負數來說,沒有直觀的理解。
作者:Ferrari1001
鏈接:https://www.jianshu.com/p/19ed5ff6a945
來源:簡書
?
總結
以上是生活随笔為你收集整理的二进制位运算 左移与右移的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不写一行代码,也能解释XML,因为是JA
- 下一篇: 服务注册eureka上显示ip地址出现的