Java中左移和右移問題圖文詳解
更新時間:2021年11月21日 10:49:08 作者:CLAY超
左移和右移并不常用,在一些特殊情況下才會使用,比如加解密時,會大量用到,這篇文章主要給大家介紹了關于Java中左移和右移問題的相關資料,需要的朋友可以參考下
?1 原碼、反碼、補碼
原碼:將十進制轉化為二進制即原碼;
反碼:正數的反碼與原碼相同,負數的反碼(除卻最高位的符號位不變)與原碼相反;
補碼:正數的補碼與原碼相同,負數的補碼(除卻最高位的符號位不變)與原碼的取反加一。
舉例:5 和 -5
5:原碼:0 0000000 00000000 00000000 00000101反碼:0 0000000 00000000 00000000 00000101補碼:0 0000000 00000000 00000000 00000101-5:原碼:1 00000000 00000000 00000000 00000101反碼:1 1111111 11111111 11111111 11111010補碼:1 1111111 11111111 11111111 11111011
2 位移操作
我們需要知道將一個數字,在計算機中進行移動多少位,例如8<<1代表將8轉化為二進制在計算機中左移1位,低位補零;
<<:左移:低位補0
>>:有符號右移:正數高位補0,負數高位補1
>>>:無符號右移,高位補零
為什么沒有無符號左移呢?因為左移的情況下只存在補零的情況。
舉例 :5 和 -5
5<<1原碼:0 0000000 00000000 00000000 00000101左移1位:0 0000000 00000000 00000000 00001010即:10-5<<1原碼:1 00000000 00000000 00000000 00000101補碼:1 1111111 11111111 11111111 11111011左移1位:1 1111111 11111111 11111111 11110110取其補碼:1 0000000 00000000 00000000 00001010即:-105>>1原碼:0 0000000 00000000 00000000 00000101右移1位:0 0000000 00000000 00000000 00000010即:2-5>>1原碼:1 00000000 00000000 00000000 00000101補碼:1 1111111 11111111 11111111 11111011右移1位:1 1111111 11111111 11111111 11111101取其補碼:1 0000000 00000000 00000000 00000011即:-35>>>1:與5>>1一樣,都是高位補0原碼:0 0000000 00000000 00000000 00000101右移1位:0 0000000 00000000 00000000 00000010即:2-5>>>1原碼:1 00000000 00000000 00000000 00000101補碼:1 1111111 11111111 11111111 11111011右移1位:0 1111111 11111111 11111111 11111101即:2147483645
代碼運行截圖

總結:
位移操作很簡單,使用補碼移動,補齊空缺位就行,除了>>:補與最高位一致的;其他移動哪缺哪補零。
在java中無論截圖中的a定義成 byte,short,int哪一種類型,它默認都是使用int類型(4字節(jié)32位),你使用long(8字節(jié)64位)
3 補充操作符
~(按位非):
逐位取反
|(按位或):
一真為真1|0=1,0|0=0,1|1=1,0|1=1
&(按位與):
兩真為真1|0=0,0|0=0,1&1=1;0&1=0
^(按位異或):
相異為真1^1=01^0=10^1=10^0=0.
總結
到此這篇關于Java中左移和右移問題的文章就介紹到這了,更多相關Java左移和右移內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java中l(wèi)ist.contains()的用法及拓展
List集合相信大家在開發(fā)過程中幾乎都會用到,有時候難免會遇到集合里的數據是重復的,需要進行去除,下面這篇文章主要給大家介紹了關于Java中l(wèi)ist.contains()的用法及拓展的相關資料,需要的朋友可以參考下2023-03-03
SpringBoot切面攔截@PathVariable參數及拋出異常的全局處理方式
這篇文章主要介紹了SpringBoot切面攔截@PathVariable參數及拋出異常的全局處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08

