二進(jìn)制補(bǔ)碼運算法則 java中-5的反碼是怎么計算的,補(bǔ)碼呢?
java中-5的反碼是怎么計算的,補(bǔ)碼呢?先轉(zhuǎn)換成二進(jìn)制,很清楚11111 011逐位是反碼補(bǔ)碼是和0xff-31:1000 0000 0000 0001 1111,沒有計算過程,就是直接寫,31是1
java中-5的反碼是怎么計算的,補(bǔ)碼呢?
先轉(zhuǎn)換成二進(jìn)制,很清楚
11111 011
逐位是反碼
補(bǔ)碼是和0xff
-31:1000 0000 0000 0001 1111,沒有計算過程,就是直接寫,31是11111,負(fù)數(shù)是第一位是1,共32位,需要計算的過程是反碼,如5個反碼~5個二進(jìn)制原碼:0000 0000 0101后反碼運算:1111111111111111111111111111010。在Java中,有符號整數(shù)由補(bǔ)碼表示,補(bǔ)碼=逆11。首先找到相反的:1000 0000 01012。然后找到補(bǔ)碼:1000 0000 0110。最高的位代表符號位,1代表負(fù)數(shù),0代表正數(shù),所以結(jié)果是-6
3。二進(jìn)制數(shù)是:0000 15二進(jìn)制數(shù)是:0000 1111
實際上,加法和10進(jìn)制數(shù)完全相同,但是二進(jìn)制數(shù)每次都輸入1,你可以理解這個
!0000 0011
0000 1111
--
0001 0010
5 binary 00000101
對~5 binary 11111 010求反(此時,它的補(bǔ)碼為-6)
對10000101求反
將1加為10000110(-6)
負(fù)補(bǔ)碼減去1等于負(fù)原始代碼