二的補數 (電腦負數表示法)

Posted by: 邱小新 at 下午4:26 in

二的補數法(2's complement)是電腦中為了儲存及運算有正負號的整數而使用的一種方法,要用二進位表達一個負整數的方法很多,但是二的補數表示法使得負整數與正整數的運算(加、減、及乘法)完全一致,不需要額外的硬體來處理。

範例

以 4 位元二的補數數字來說。例如:1 + (-2) = -1,0001(1) + 1110(-2) = 1111(-1)。你可以發現二的補數的加法只要使用標準的二進位加法就可以了。

2 進位無號整數有號整數
111115-1
111014-2
110113-3
110012-4
101111-5
101010-6
10019-7
10008-8
011177
011066
010155
010044
001133
001022
000111
000000

十進制轉成二進制

以 -3 為例。

  1. 11: 先把數字部分轉換成二進制。
  2. 0011: 依照 bit 數,補齊空缺。
  3. 1100: 使用1的補數,將1變0,0變1。
  4. 1101: 再把1的補數加上1,形成2的補數。

二進制轉成十進制

以 1101 為例。

  1. 1100: 2的補數減1,還原成1的補數。
  2. 0011: 1變0,0變1。
  3. 3: 二進制轉成十進制。
  4. -3: 數字前加上負號。

4 意見

張貼留言