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...