好吧,說(shuō)下這個(gè)正數和負數
值為5它在計算機中表示為:
00000000 00000000 00000000 00000101
5轉換成二制是101,不過(guò)int類(lèi)型的數占用4字節(32位),前面填了一堆0
-5在計算機中,負數以原碼的補碼形式表達。
原碼:
一個(gè)正數,按照絕對值大小轉換成的二進(jìn)制數就是正數的原碼
一個(gè)負數,按照絕對值大小轉換成的二進(jìn)制數,然后最高位補1,就是負數的原碼
比如
00000000 00000000 00000000 00000101 是5的原碼。
10000000 00000000 00000000 00000101 是-5的原碼。
補碼
正數的補碼與原碼相同
負數的補碼為對該數的原碼除符號位外各位取反,然后在最后一位加1
比如:
10000000 00000000 00000000 00000101 的反碼
是:11111111 11111111 11111111 11111010
那么,補碼為:
11111111 11111111 11111111 11111010 + 1 = 11111111 11111111 11111111 11111011
-5 在計算機中表達為:11111111 11111111 11111111 11111011
轉換為十六進(jìn)制:0xFFFFFFFB
樓主留言:
道理倒是明白,關(guān)鍵是收到數據后怎么處理。收到的數據有正數也有負數時(shí),怎么才知道自己收到的是負數,負數在哪個(gè)寄存器里。