二的補數法(2's complement)是電腦中為了儲存及運算有正負號的整數而使用的一種方法,要用二進位表達一個負整數的方法很多,但是二的補數表示法使得負整數與正整數的運算(加、減、及乘法)完全一致,不需要額外的硬體來處理。
範例
以 4 位元二的補數數字來說。例如:1 + (-2) = -1,0001(1) + 1110(-2) = 1111(-1)。你可以發現二的補數的加法只要使用標準的二進位加法就可以了。
2 進位 | 無號整數 | 有號整數 |
1111 | 15 | -1 |
1110 | 14 | -2 |
1101 | 13 | -3 |
1100 | 12 | -4 |
1011 | 11 | -5 |
1010 | 10 | -6 |
1001 | 9 | -7 |
1000 | 8 | -8 |
0111 | 7 | 7 |
0110 | 6 | 6 |
0101 | 5 | 5 |
0100 | 4 | 4 |
0011 | 3 | 3 |
0010 | 2 | 2 |
0001 | 1 | 1 |
0000 | 0 | 0 |
十進制轉成二進制
以 -3 為例。
- 11: 先把數字部分轉換成二進制。
- 0011: 依照 bit 數,補齊空缺。
- 1100: 使用1的補數,將1變0,0變1。
- 1101: 再把1的補數加上1,形成2的補數。
二進制轉成十進制
以 1101 為例。
- 1100: 2的補數減1,還原成1的補數。
- 0011: 1變0,0變1。
- 3: 二進制轉成十進制。
- -3: 數字前加上負號。
GOOOD 清楚明瞭
相當實用!!謝謝分享^^
簡單易懂 謝謝分享
相當實用!!謝謝分享