banner
指数爆炸

指数爆炸

我做了对饭 !
github
bilibili

真正告訴你什麼是補碼?

========================================

什麼是補碼?#

補碼就是用正數來表示負數

========================================

例子#

  1. 例如,用 8 位二進制數表示 - 1 時,只需求得 1(00000001)的補碼即可。將 00000001 的各位數的 0 取反成 1,1 取反成 0,然後再將取反結果 + 1,最後就轉換成了 - 1(11111111)

  1. 再例如,表示 - 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)

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。