========================================
什麼是補碼?#
補碼就是用正數來表示負數
========================================
例子#
- 例如,用 8 位二進制數表示 - 1 時,只需求得 1(00000001)的補碼即可。將 00000001 的各位數的 0 取反成 1,1 取反成 0,然後再將取反結果 + 1,最後就轉換成了 - 1(11111111)
- 再例如,表示 - 5,5 的二進制數為 0101,吧 0101 取反 + 1,轉換成了 1011(-5)
=======================================
- 其實你真的不用管什麼老師教你的概念:
正數的原反補都相同,負數的原反補要計算。
還有什麼,計算機裡存的都是補碼,不是原碼。
其實計算機裡存的就是這樣一些數字,只不過是用補碼來表示負數而已。
=======================================
那為什麼要用補碼來表示負數呢?#
因為所有的十進制計算在計算機裡都是二進制的運算,所有的減法在計算機裡都是加法。如果不用補碼,那麼 1-1 會等於 - 2。比如
0001-------------(1)
1001-------------(-1)
0001+1001=
1010-------------(-2)
所以我們要用補碼來表示負數
0001-------------(1)
1111-------------(-1)
0001+1111=
10000------0000-------(0)
=======================================
補碼為什麼叫補碼?#
可能是因為一個數和它的補碼相加為 0。其實你想想就知道,表示 -5 的時候是用 5 來表示的,那 - 5 與 5 本來就互為相反數。
=======================================
小 tips:#
由於一個數和它的補碼互為相反數,所以補碼 ---> 取反 + 1---> 轉換之前的數。
-5(1011)------ 取反 + 1-------5(0101)