為什麼用補碼,為什麼有符號單位元組最小是 128

2021-08-28 12:13:16 字數 1112 閱讀 3283

1.為什麼用補碼

先說明同餘的概念:同餘運算及其基本性質

關於同餘負數問題,可以用負數,但是得想清楚為啥

怎樣直白地理解補碼原理?

參考上面文章基本能明白了為什麼用補碼,為了用加法器能計算負數;

總結上面的結論:

那為什麼正負數要隔開呢?———為了製造出類似原碼的符號位,這樣補碼轉換原碼的時候,就可以區分轉換了。正數不變,負數取反加一。

為什麼是取反加一呢?———根據原碼負數時 [x]補=m-|x|推出來的 ,這是原始式子,也挺好記的比如-8的補碼就是256-8 = 248,-128的就是128,。

那為什麼原碼取反加一為補碼,補碼取反加一為原碼?———因為負數的補碼,根據前面所說和原碼是互補的,根據[x]補=m-|x|推出來的公式。肯定是相同的,所以求原碼也就相當求補了。

2.為什麼有符號單位元組最小是-128

這裡說下為啥有符號單位元組最小取-128,而不是最大取128,這裡糾結了好久了。

-128的補碼是10000000,如果128存在也是10000000;

1.假設10000000代表128,則計算128+1 為:

10000000

+00000001

----

----

----

----

----

-10000001

而10000001是-127,加法器計算錯誤;

2.假設10000000代表-128,則計算-128+1 為:

10000000

+00000001

----

----

----

----

----

-10000001

而10000001是-127,加法器計算正確;

所以取10000000為-128

這裡純個人理解,如有不對的地方望指正

python為什麼用flask 為什麼用flask

flask是python在web開發領域乙個輕量級的框架,為什麼選擇flask呢?此文可能會給你答案。選擇flask的原因 1.微框架 簡潔 只做它需要做的,給開發展提供了很大的擴充套件性。2.flask和相關的依賴 jinja2 werkzeug 設計得非常優秀,用著簡單。3.開發效率非常高,比如...

負數為什麼用補碼表示

問 負數在計算機中如何表示?舉例來說,8在計算機中表示為二進位制的1000,那麼 8怎麼表示呢?很容易想到,可以將乙個二進位制位 bit 專門規定為符號位,它等於0時就表示正數,等於1時就表示負數。比如,在8位機中,規定每個位元組的最高位為符號位。那麼,8就是00001000,而 8則是100010...

負數為什麼用補碼表示 補碼定義

我們都知道負數在計算機中是以補碼 忘了補碼定義的戳這裡 表示的,那為什麼呢?本文嘗試了解補碼的原理,而要想理解它,首先得理解算術中 模 的概念。所以首先看一下什麼是模,然後通過乙個小例子來理解補碼。c語言規定,把記憶體的最高位作為符號位,且用0表示正數,用1表示負數。2.1 原碼 乙個整數,按照絕對...