詳解二進位制補碼

2022-03-15 18:37:02 字數 516 閱讀 5409

過去學計算機組成原理時一直沒有搞明白補碼的意義,今天聽了王紅老師的數字電子基礎課才了解到,慚愧!

在正文開始之前,首先要明確兩個概念,就是數制和碼制,

比如下面這個數字:

100832
帶符號二進位制的運算依賴於補碼,如

+5: 0 0101

-5: 1 0101

最高位為0則為正,為1則為負。正常來講我們將其相加應該是0,但實際上:

00101

+10101

------

11010

直接相加得到的結果並不是我們想要的,這是因為哦這樣想加混淆了數制和碼制,最高位的0和1並不和地位一樣代表著數值,所以和它們一起直接計算必然就會出錯。

所以帶符號的二進位制數的計算依賴於補碼,補碼的表示如下:

+5: 0 0101

-5: 1 1011

這裡有幾個要解釋和注意的點:

二進位制補碼

二進位制補碼 計算機儲存資料都是以0,1二進位制進行儲存。對於有符號整數儲存 對於浮點數待續 引入補碼概念。原碼即直接將真值轉換為其相應的二進位制形式,而反碼和補碼是對原碼進行某種轉換編碼方式。對於正整數,原碼,反碼和補碼都相一樣 對於負整數,補碼等於反碼加1,而反碼等於原碼除符號位不變其他位按位求...

二進位制補碼

計算機只能識別0和1,使用的是二進位制,而在日常生活中人們使用的是十進位制,正如 亞里斯多德早就指出的那樣,今天十進位制的廣泛採用,只不過我們絕大多數人生來具有10個手指頭這個解剖學事實的結果.儘管在歷史上手指計數 5,10進製 的實踐要比二或三進製計數出現的晚.摘自 數學發展史 有空大家可以看看哦...

二進位制補碼

二進位制補碼主要是為了解決負整數的加減法運算 減法轉化為加法 原碼表示法就是用二進位制的最高位表示符號,0表示正數,1表示負數。以8位為例 1就是表示為0000 0001,1表示為1000 0001.而補碼的規則是正整數保持不變,針對負整數,除符號位外,其他位全部取反,然後 1。注 負整數中,原碼轉...