tft每日頭條

 > 圖文

 > 計算機裡面用的是反碼還是補碼

計算機裡面用的是反碼還是補碼

圖文 更新时间:2024-07-23 17:18:29

計算機裡面用的是反碼還是補碼?數字的加減乘除等計算是計算機的基本功能數字有正負之分,所以我們需且僅需一個符号位來區分他們我們定義最高位是0表示正數,最高位是1表示負數這樣在八位數字系統中,除去最高位用來表示正負,還有七位可以用來表示數的絕對值,今天小編就來聊一聊關于計算機裡面用的是反碼還是補碼?接下來我們就一起去研究一下吧!

計算機裡面用的是反碼還是補碼(計算機中為什麼用補碼來表示數字)1

計算機裡面用的是反碼還是補碼

數字的加減乘除等計算是計算機的基本功能。數字有正負之分,所以我們需且僅需一個符号位來區分他們。我們定義最高位是0表示正數,最高位是1表示負數。這樣在八位數字系統中,除去最高位用來表示正負,還有七位可以用來表示數的絕對值。

首先我們定義正數的表達:最高位為0,剩餘7位表示絕對值。正數的絕對值就是其本身,所以可以表示的範圍是1--127.

然後定義0的表達:數學中0既可以是 0,也可以是-0,我們定義0的表達就是八個0即正零(00000000),如果定義負零,這樣0就會有2兩種表達形式。在不具有唯一性的情況下,會引起不必要的多餘驗證環節。所以我們隻定義0用正零來唯一表示。

這裡注意:正數和0的表示都是我們強行定義的。

在數字邏輯電路中,實現加法器和反向器是非常容易的。我們知道數字的減法是可以轉化為加法的,例如 9-5,我們可以轉換成9 (-5)的加法運算。按照我們的約定,負數要以1為開頭進行表達,八位系統中的後七位要表達這個這個負數的絕對值。

我們可以直接用絕對值正數表達,則後七位對應的也就是1--127,這種表達方法也叫做原碼。比如(-2)可以表示為 10000010)。但此時我們如果和 2(00000010)相加的話,得到的結果是10000100,按照原碼表示這個值就等于 -4,實際結果應該是 0(00000000)。顯然負數用原碼表示是不合适的。既然2 (-2)的結果因該是0,我們必須對負數使用其它的表達方式,使得計算結果就是0(00000000)。

試想這種情況,我們的8位系統隻表達正數,則表達的值範圍是0--255(00000000-11111111),256相當于255 1,256就變成了進位1 00000000,我們看到後八位剛好全0。此時對于1--127的數字來說,他們對應的負值表達方式剛好是256減去他們的話,那相加以後的值剛好是進位j加上8個0,同時又滿足最高位為1,正好是我們所定義的負數具有的形式。由此我們把負數的表達定義為 256減去負數絕對值,這種方式稱之為補碼。

當然我們還必須證明補碼的完備性和補碼加減的正确性,後續補齊。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved