週六加班的時候,乙個同事看到我在筆畫二進位制,就問我,這是啥,我跟他bb一大堆,然後他問我一句:為什麼計算機使用補碼,而不使用普通的(原碼)呢?
這的確是乙個好問題。
討論上述的內容之前,先預設大家都知道如下兩個知識
那麼在補碼沒有出現之前,我們怎麼使用原碼去快速的加減數?
我們知道, 如果乙個數a要減去乙個比它還大的數b,那麼結果就是負值,比如2-3=-1;但是如果乙個數a要減去乙個比它小的數b,那麼結果就是正值,比如2-1=1。但問題是:1,2,3對於人類來說,已經約定俗成有了大小關係,但是計算機並不知道孰大孰小。所以對於a-b這種減法問題,使用原碼做加減法的過程如下:
整個計算過程涉及到一次比較,一次運算,一次修改符號。是不是十分的複雜呢?要知道計算機早期是用於被設計為做計算的。如果以這樣的計算效率在計算大量的運算,是低效的。那麼有什麼可以改進的方法嗎?我們都知道,減去乙個數,相當於加上該數的相反數。比如a-b,則恆等於a+(-b),針對這個理論,有人提出了補碼。
補碼是什麼?
任何整數都有乙個補碼,這個補碼就是計算機中真正儲存的數字的形式。
計算機補碼,為什麼要用補碼
在計算機系統中,數值一律用補碼來表示和儲存。原因在於,使用補碼,可以將符號位和數值一併處理,不需要單獨的處理符號位而降低複雜度,使得加法和減法也可以統一處理 為什麼要用補碼,好處是什麼?為了表示二進位制數,如果直接用原始碼形式,需要額外的硬體 缺點 區分符號位0,1 如果用反碼,無需硬體分辨符號位,...
計算機基礎 計算機為什麼要使用補碼?
三 為什麼使用反碼?四 為什麼使用補碼?五 原碼 反碼 補碼優缺點 六 總結 n位補碼能表示的範圍 原碼中的符號位僅用來表示數的正 負,不參加運算,進行運算的只是數值部分。原碼運算時,應首先比較兩個數的符號,若兩數的符號相同,則可將兩個數的數值相加,最後給結果附上相應的符號 若兩數的符號不同,則需比...
計算機中數值的表示 為什麼使用補碼來表示
內容可能少,貴在日精進 背景 基本概念 遇到的問題 解決方法 內在原理 一 背景 1.0 思路 1 為什麼會有這個問題,2 機器數,真值,原碼,反碼和補碼 1.1 知道補碼的概念,但是這些概念是割裂的,不清楚為什麼會有這些定義 二 遇到的問題 2.1 問題描述 1 計算機中的加減乘除是最基本的運算,...