數字電路之原碼、補碼、反碼的來由

衆所周知,在數字電路中人們用二進制數來表示數值的大小,然而數有正負之分!如何區別二進制數的正負呢?
爲了解決這個問題,科學家們想到在二進制數的前面在再加上一位符號位,以此來區別二進制數的正負。1–代表負數,0–代表正數。然後又稱這種帶有符號位的二進制數稱爲原碼。即原碼=符號位+二進制數值

然而引入原碼確實可以區分二進制數的正負,但也帶來了一個新的問題,如兩個數相減最終結果的符號位是1(負)呢還是0(正)呢?
我們需要找出這兩個數中的絕對值大的數,然後用絕對值大的減去絕對值小的數,結果再加上絕對值大的數的符號位。因此若用原碼進行加減操作需要比較電路與減法電路兩種電路,較麻煩!如何簡化電路呢?
爲了解決用原碼直接進行加減的引起電路複雜的弊端,我們引入了補碼(在計算機中帶符號位的數值都是以補碼的形式存貯在內存中的)!
用補碼的方式表示二進制數值大小好處是加減可以直接得到符號位。無需比較電路。
而一個數的補碼如何得到呢?
爲了方便得到一個數的補碼我們引入了反碼!(在電路中取反是很容易實現的。)
補碼=反碼+1
而反碼=原碼除符號位其餘位的按位取反
注意!一個數(無論正負)的原碼、補碼、反碼的符號位都是相同的,不改變!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章