在計算機中表示數時,為什麼要引入補碼

時間 2023-04-30 00:45:09

1樓:

先了解什麼是補碼,以及計算機怎麼表示帶符號整數:

帶符號整數有原碼、反碼、補碼等幾種編碼方式。原碼即直接將真值轉換為其相應的二進位制形式,而反碼和補碼是對原碼進行某種轉換編碼方式。正整數的原碼、反碼和補碼都一樣,負數的反碼是對原碼的除符號位外的其他位進行取反後的結果(取反即如果該位為0則變為1而該位為1則變為0操作)而補碼是先求原碼的反碼,然後在反碼的末尾位加1後得到結果,即補碼是反碼+1

再看看補碼有什麼好處:

1、因為使用補碼可以將符號位和其他位統一處理,同時,減法也可以按加法來處理,即如果是補碼表示的數,不管是加減法都直接用加法運算即可實現。【至於加法運算為什麼比減法運算易於實現以及cpu如何實現各種算術運算等問題,則需要通過對數位電路的學習來理解cpu運算器的硬體實現問題的相關內容了】

這樣的運算有兩個好處:

a、使符號位能與有效值部分一起參加運算,從而簡化運算規則。從而可以簡化運算器的結構,提高運算速度;減法運算可以用加法運算表示出來。

b、加法運算比減法運算更易於實現。使減法運算轉換為加法運算,進一步簡化計算機中運算器的線路設計。

2、兩個用補碼表示的數相加時,如果最高位(符號位)有進製,則進製被捨棄。而這樣計算仍然正確。

另外:採用補碼表示還有另外乙個原因,那就是為了防止0機器數有兩個編碼。原碼和反碼表示的0有兩種形式+0和-0,而採用補碼表示的時候,00000000是+0即0,10000000不再是-0而是-128這樣,補碼表示的數的範圍就是-128~+127,不但增加了乙個數得表示範圍,而且還保證了0編碼的唯一性。

2樓:做而論道

是為了簡化硬體。

補碼,其實就是乙個【代替負數】的正數。

使用了補碼之後,在計算機中,就沒有負數了。

順便,也就消除了減法運算。

那麼,計算機只需配置乙個加法器,就可以走遍天下了。

補碼(即乙個正數),怎麼就能【代替負數】呢?

理論基礎在於:計數系統的週期性。

比如,2 位 10 進製數(0~99),計數周期就是 10^2 = 100。

那麼: 25 - 1 = 24

25 + 99 = 一百) 24

只要你:捨棄進製,僅保留 2 位數,+99 就能代替-1。

同理,+98 也能代替-2。

這些正數,就稱為「負數的補數」。

變換公式: 負數的補數 = 負數 + 週期。

另外還有:時針的週期是 12,倒撥 3 小時、正撥 9 小時,等效吧?

三角函式的週期是 2π,-π/2、+3π/2,這兩處的函式值,也相同。

這些負數變正數,公式都是: 正數 = 負數 + 週期。

反之,也成立,即: 負數 = 正數 - 週期。

計算機中,8 位 2 進製數,週期就是 2^8 = 256。

-1 的補碼,就是:-1 + 256 =255 = 1111 1111(二進位制)。

2 的補碼,就是:254 = 1111 1110(二進位制)。

求補碼,不必繞道「原碼反碼取反加一符號位不變」。

用「負數+週期」,直接就能求出補碼。

數學不好的老外,才需要弄哪些騷操作!

只有負數,才需要變換成補碼(正數)。

正數,不需要變換,也不允許變換,必須直接去相加運算。

所以,正數,它就沒有補碼。

有人說:正數的。。。都相同。

這就是被老外帶到溝裡去了。

原碼反碼,在計算機中,都是不存在的,哪還有什麼相同!

3樓:羅羅不吃螺螺

補碼是計算機中有符號數的表示方法之一。

原因在於,使用補碼,可以將符號位和數值域統一處理;同時,加法和減法也可以統一處理。此外,補碼與原碼相互轉換,其運算過程是相同的,不需要額外的硬體電路。

正整數的補碼是其二進位制表示,與原碼相同。

4樓:網友

補碼:就是將負數用正數來表示。

為什麼運算是用的是補碼?

簡單就是為了製作簡單。因為只要只做乙個加法的運算就可以把所有的加,減,乘,除等表示出來。如果你不用補碼。那將要製作別的運算器。那會浪費,而且製作也很複雜。

為什麼現代計算機都用補碼來表示整數

5樓:做而論道

就是為了:簡化硬體,省錢。因為,負數,可以用乙個正數(補碼)代替。

如: 24 - 1 = 23

24 + 99 = 一百) 23

忽略進製,用 +99 就可以代替-1。

那麼,借助於補碼,就可以,把減法轉換為加法運算。

因此,在計算機中,只需設定乙個加法器,便可加減通吃了。

6樓:可軒

機器數用補碼表示的好處:

原碼簡單,適用於乘除運算,但用原碼表示的數進行加減法運算比較複雜。

補碼,減法運算可以用加法來實現,例如 [x-y]補 = x]補 +[y]補,而且,數的符號位也可以參與運算,便於運算結果的正負及是否溢位判斷。

因此在計算機中大都採用補碼來進行加減及乘除運算。

不僅是整數,小數亦可用補碼表示)

計算機為什麼採用補碼計算

7樓:沙里波特

正負數,在計算機中存放的格式,就是補碼。

計算機中,並沒有原碼和反碼,也就不必關心它們了。

下面,針對補碼,給出解釋。

比如,有乙個小孩,很小的。

他只認識 100 個數(0~99),也不會做減法。

那麼,就可以告訴他:「減一」,就用「加 99」算吧。

忽略進製的 100,結果不是一樣的嗎?

那麼,就是說:

99,就是-1 的補數。

98,就是-2 的補數。

利用「補數」,就可把「減法」轉為「加法」。

利用這個特點,計算機中,僅需乙個「加法器」,就夠用了。

在計算機中,是以二進位制存放各種資訊的,統稱為:**。

八位,作為乙個計算單位。

範圍是:0000 0000 ~ 1111 1111。

寫成十進位制,就是:0~255。

共有 256 個**。--這個數字,稱為:模。

那麼:1111 1111(255),就是-1 的補碼。

1111 1110(254),就是-2 的補碼。

1000 0000(128),就是-128 的補碼。

求負數的補碼,就是這麼簡單。

而零和正數,直接參加運算即可,用不著求補碼。

因此,下面就是補碼的定義式。

零和正數的補碼: 就是該數字本身。

負數的補碼: 就用「模」,加上該負數。

模,就是**的總個數。

原碼和反碼,則毫無意義。

所以,在計算機中,並沒有它們的存在。

8樓:做而論道

在計算機中,負數,以其正值的補碼形式表示。

就是說,負數,是用乙個正數(即補碼)來表示的。

使用了補碼,計算機中,就沒有負數了。並且,也就消除了減法運算。

那麼,計算機,只需配置乙個加法器,便可橫行天下。

9樓:郜訪彤儀燁

使用補碼的好處:

可加法代替減法運算,[a-b]補。

a]補+[-b]補。

簡體了計算機運算硬體電路,提高運算效率:

統一了正0和負0

原碼及反碼的正0、負0有不同的表示,補碼的0是唯一的,例如字長8位,補碼的0表示為唯一的00000000

為什麼計算機中帶符號數採用補碼表示

10樓:做而論道

為什麼用補碼表示負數?

原理:用加法運算,也可以產生減法的效果。

目的:簡化計算機的硬體。在兩位數之內,+99,就可以代替-1。

如: 24 - 1 = 23

只取兩位,這兩種演算法,功能就是相同的。

加上 99,就相當於,減一!物極必反,聽說過吧?

99,就是-1 的補數。鐘錶的分針,正撥 59,也相當於倒撥 1 分鐘!

計算機用二進位制,補數,就改稱為:補碼。

八位二進位制:0000 0000~1111 1111(十進位制255)。

255(=1111 1111),就是-1 的補碼。

254(=1111 1110),就是-2 的補碼。

負數的補碼 = 2^n + 該負數。(n 是二進位制的位數。)

借助於補碼,在計算機中,只需配置乙個加法器,即可。

正數,沒有補碼,直接參加計算即可。

11樓:煙雅美奇原

爭議因為計算機中用補碼表示帶符號數時,減法運算可以變成加負數,而負數用補碼表示後,可以直接按二進位制數進行加法運算。這樣適應計算機硬體加法器進行運算。

計算機中為什麼用補碼來表示有符號數?

12樓:做而論道

補碼,實際上,就是乙個「代替負數」的正數。

使用了補碼之後,計算機中,就沒有負數了。

同時,也就沒有減法運算了。

計算機,只要配置乙個加法器,就能橫行天下了。

這就是補碼的作用。

補碼(乙個正數),怎麼就能代替負數呢?

想一想週期性的規律吧。

比如,2 位 10 進製數計數週期就是 10^2=100。

可有: 25 - 1 = 24

25 + 99 = 一百) 24

你捨棄進製的 1 百,只保留 2 位數,+99 就能代替-1!

而且,加法,也能代替減法運算!

同樣,+98 也可以代替-2。

這些正數,就稱為「負數的補數」。

求補數的公式,顯然就是:

補數=負數+10^n

式中:n 是補數的位數。

10^n,是 n 位 10 進製數的週期。

這公式,在三角函式中,也有雷同的表現。

三角函式,是以 2π 為週期的。

任何負角度,加上週期,就可以轉換為正角度。

如:x =-2,與其等效的正角度,即為:

x =-2 + 2π =3π/2

計算機用二進位制,補數,就稱為:補碼。

求負數的補碼,公式是:

補碼 = 負數 + 2^n

2^n,是 n 位 2 進製數的計數週期。

對於 8 位 2 進製數,週期就是

那麼,-1 的補碼就是 255 = 1111 1111 (二進位制)。

2 的補碼就是 254 = 1111 1110 (二進位制)。

128 的補碼就是 128 = 1000 0000 (二進位制)。

正數,不用轉換,也不許做任何轉換,必須直接去參加算。

所以,零和正數,並沒有補碼。

求補碼,不需要「符號位原碼反碼取反加一符號位不變」。

那一大堆步驟,並沒有什麼數學理論依據。

數學不好的老外,弄不懂週期,才用那些騷操作。

而且,原碼反碼,在計算機中,根本就不用!

忽悠大家學了一大堆,一丁點用處,也都沒有的。

計算機為什麼使用補碼來儲存資料

13樓:網友

簡單來說,方便將減法運算化為加法運算,這樣可以簡化電路設計(cpu中只需要加法器而不需要剪髮器)

例如 100 - 50 變化為 (+100) +50)。

14樓:匿名使用者

計算機(computer)俗稱電腦,是現代一種用於高速計算的電子計算機器,可以進行數值計算,又可以進行邏輯計算,還具有儲存記憶功能。是能夠按照程式執行,自動、高速處理海量資料的現代化智慧型電子裝置。由硬體系統和軟體系統所組成,沒有安裝任何軟體的計算機稱為裸機。

可分為超級計算機、工業控制計算機、網路計算機、個人計算機、嵌入式計算機五類,較先進的計算機有生物計算機、光子計算機、量子計算機等。

計算機發明者約翰·馮·諾依曼。計算機是20世紀最先進的科學技術發明之一,對人類的生產活動和社會活動產生了極其重要的影響,並以強大的生命力飛速發展。它的應用領域從最初的軍事科研應用擴充套件到社會的各個領域,已形成了規模巨大的計算機產業,帶動了全球範圍的技術進步,由此引發了深刻的社會變革,計算機已遍及一般學校、企事業單位,進入尋常百姓家,成為資訊社會中必不可少的工具。

計算機中計算器計算not,計算機中計算器計算not

55轉換成二進位制 not 55 再轉化成十進位制就是8 例如 二進位制數1101.01轉化成十進位制 1101.01 二進位制 1 2 0 0 2 1 1 2 2 1 2 3 0 2 1 1 2 2 1 0 4 8 0 0.25 13.25 十進位制 所以總結起來通用公式為 abcd.efg 二進...

計算機中有哪些儲存器,計算機中有哪些儲存器?

型計算機的記憶體儲器是由半導體器件構成的。從使用功能上分,有隨機儲存器 random access memory,簡稱 ram 又稱讀寫儲存器 唯讀儲存器 read only memory,簡稱為rom 1.隨機儲存器 random access memory ram有以下特點 可以讀出,也可以寫入...

C C 關於浮點數在計算機中的計算機制?

首先,要校正一下你問題中的錯誤 任何計算機裡面的算術邏輯運算都不是在記憶體裡面的進行的。必須先將資料讀入cpu中的暫存器,然後通過alu部件 運算部件 進行運算的。這點切記別搞錯了。以下講講浮點數的運算。其實在我的理解上,浮點數的運算和整數的運算其實區別不大。計算機浮點數的表示其實類似於我們數學中科...

什麼是計算機中的位元組,計算機中的「位」和「位元組」是什麼概念?

位元組是個儲存單位,8位字元稱乙個位元組,每個英文本母就占用乙個位元組,每個中文字佔兩個位元組,兩個英文本母和乙個中文漢字所佔的空間一樣大 byte是乙個位元組,乙個位元組由8位構成,也就是8bit 位元組是個儲存單位,通常說乙個英文本母為乙個位元組,乙個中文字母佔2個位元組,1mb 1024b,1...

計算機補碼,計算機中補碼的意義和演算法

在計算機中,負數以其正值的補碼形式表達。什麼叫補碼呢?這得從原碼,反碼說起。原碼 乙個整數,按照絕對值大小轉換成的二進位制數,稱為原碼。比如。是。5的。原碼。反碼 將二進位制數按位取反,所得的新二進位制數稱為原二進位制數的反碼。取反操作指 原為1,得0 原為0,得1。1變0 0變1 比如 將0000...