(1).二進(jìn)制中負(fù)數(shù)的計(jì)算
負(fù)數(shù)以正數(shù)的補(bǔ)碼表示
原碼:一個(gè)整數(shù)按照絕對(duì)值的大小轉(zhuǎn)化成二進(jìn)制的數(shù)
反碼:將二進(jìn)制數(shù)按位取反
補(bǔ)碼:反碼加 1
以-14 舉例
原碼:14 即 00000000 00000000 00000000 00001110
反碼: 11111111 11111111 11111111 11110001
補(bǔ)碼: 11111111 11111111 11111111 11110010
所以-14 的二進(jìn)制是 11111111 11111111 11111111 11110010
假設(shè) 我們得到 二進(jìn)制讓我們求整數(shù) 就是倒著來(lái)取相反數(shù)
如二進(jìn)制是 11111111 11111111 11111111 11110010
得到反碼減1 11111111 11111111 11111111 11110001
原碼: 00000000 00000000 00000000 00001110
即 1110 = 14 所以取反 就是-14
(2).<<左移運(yùn)算符
1.將一個(gè)運(yùn)算對(duì)象的各二進(jìn)制位全部左移若干位(左邊的二進(jìn)制丟棄捅膘,右邊補(bǔ)0)
(注意:java中 整數(shù)位 32位)
11 << 2 = 44
-14 <<2 =-56
-14的二進(jìn)制(11111111 11111111 11111111 11110010)左移2位 為
11111111 11111111 11111111 11001000 結(jié)果為(-56)
【補(bǔ)充】:對(duì)于左移,直觀的理解為涮母,對(duì)于正數(shù)來(lái)說(shuō)鹏漆,左移相當(dāng)于乘以2(但效率比乘法高);對(duì)于負(fù)數(shù)來(lái)說(shuō)袍睡,沒(méi)有直觀的理解知染。
(3).>>右移運(yùn)算符
將一個(gè)運(yùn)算對(duì)象的各二進(jìn)制位全部右移若干位,正數(shù)左補(bǔ)0斑胜,負(fù)數(shù)左補(bǔ)1.
4 >> 2 = 1;
-14 >> 2 = -4;
【補(bǔ)充】:對(duì)于右移控淡,直觀的理解為嫌吠,對(duì)于正數(shù)來(lái)說(shuō),右1移相當(dāng)于除以2(但效率比除法高)掺炭;對(duì)于負(fù)數(shù)來(lái)說(shuō)辫诅,沒(méi)有直觀的理解。