java中關於,>>>

1,在計算機中,數據都是以補碼的形式存在的,
2,正數二進制數據的原碼、反碼、補碼都是相同的,
如 5,java中,int佔四個字節,所以它的原碼、反碼補碼均爲00000000 00000000 


00000000 00000101,首位0表示正數
舉個例子,14的幾個操作,
14>>2;分析14的原碼、反碼、補碼爲:00000000 00000000 00000000 00001110;
右移2位,高位補充符號位,此處符號位爲0;所以結果爲3


14>>>2;與上一個一樣,只不過高位補充的是0,在這裏結果也爲3


14<<2:左移2位,低位補充0,可以得到結果爲56


3,負數二進制數的原碼、反碼、補碼基本不相同(-8的原碼和補碼是相同的)
如-5,原碼爲10000000 00000000 00000000 00000101,反碼 11111111 11111111 


11111111 11111010,符號位不變,補碼爲11111111 11111111 11111111 11111011,在


反碼的基礎上加1。
4、幾個基本的操作,-14的原碼爲100000000 00000000 00000000 00001110,反碼爲


11111111 11111111 11111111 11110001,補碼爲11111111 11111111 11111111 


11110010,
-14<<2;低位補充0,補碼爲11111111 11111111 11111111 11000100;所以反碼爲


11111111 11111111 11111111 1100011,原碼爲10000000 00000000 00000000 


0011100,也就是數字-56;
-14>>2;高位補充的是符號位,補碼爲11111111 11111111 11111111 11111100;
反碼爲11111111 11111111 11111111 11111011,原碼爲10000000 00000000 00000000 


00000100;所以結果爲-4;
-14>>>2,高位補充的是0,補碼爲00111111 11111111 11111111 11111100;這是一個正


數,反碼,補碼,原碼都是相同的,也就是數字1073741820。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章