① 補碼是誰發明的,它的最初作用是什麼
補碼就是正數的原碼的相反數的另一種編碼方式。它能把字長內的正數,補足為全是0。
② 原碼、反碼、補碼的產生、應用以及優缺點有哪些
1、 原碼:是機器數的一種簡單的表示法。其符號位用0表示正號,用1表示負號,數值一般用二進制形式表示。
優點:最簡單直觀。
缺點:不能直接參加運算,可能會出錯。
原碼來歷:在機器中,只能識別二進制數字,所以所以的數字都用原碼來表示。
2、 反碼:可由原碼得到。如果機器數是正數,則該機器數的反碼與原碼一樣;如果機器數是負數,則該機器數的反碼是對它的原碼(符號位除外)各位取反而得到的。
優點:解決負數加法運算問題,將減法運算轉換為加法運算,從而簡化運算規則。
缺點:沒有缺點
反碼來歷:為了解決「正負相加等於0」的問題,在「原碼」的基礎上,人們發明了「反碼」
3、 補碼:可由原碼得到。如果機器數是正數,則該機器數的補碼與原碼一樣;如果機器數是負數,則該機器數的補碼是對它的原碼(除符號位外)各位取反,並在未位加1而得到的
優點:可以把負數直接拿來算加法。
缺點:容易忘記公式,計算錯誤。
補碼來歷:計算機裡面,只有加法器,沒有減法器,所有的減法運算,都必須用加法進行,用補數代替原數,可把減法轉變為加法。
4、 在計算機中為什麼要使用補碼:由於原碼和反碼中,+0與-0的表示並不相同,所以計算機中一般使用補碼。其實還有一個更重要的作用,就是利用高位溢出,將減法運算變成加法。
③ 二進制數字系統是誰發明的
二進制是計算技術中廣泛採用的一種數制。二進制數據是用0和1兩個數碼來表示的專數。它屬的基數為2,進位規則是「逢二進一」,借位規則是「借一當二」,由18世紀德國數理哲學大師萊布尼茲發現。當前的計算機系統使用的基本上是二進制系統,數據在計算機中主要是以補碼的形式存儲的。計算機中的二進制則是一個非常微小的開關,用「開」來表示1,「關」來表示0。
④ 補碼存在的意義
補碼可復以簡化計算機制的設計。
對於人腦而言,做加減題時,第一反應就是根據符號位,來選擇對真值區域的加減。但是計算機而言,像加減乘除這類最最基礎也是應用得最頻繁的基本運算,在物理邏輯的設計上一定要設計的盡量簡單。
如果讓計算機也先判斷符號位再分別做加或者減的運算的話,會使得計算機的電路設計變得較為復雜。人類發明了將符號位也參與進運算的方法來。對於計算機而言,不管是加法還是減法,都統一用加法來做運算,可以使得計算機的設計變得更加的簡單。
(4)補碼是誰發明的擴展閱讀:
補碼是另一種編碼方式。與反碼類似,正數的補碼是它本身,而負數的補碼則是它的反碼再+1。同樣,對於負數而言,補碼也是無法直觀地看出數值的,需要轉成原碼。
CPU 的基本單元 ALU 模塊。在ALU里,加法是最基本的運算。通過程序,乘法可以轉換為加分,除法可以轉換為減法。補碼表示,則可以讓減法直接轉換為加法。這樣,ALU 核心只需要加法器即可滿足功能,加法器可以通過集成電路中的晶體管來實現。
⑤ c語言裡面,反碼誰發明的
當然是c語言的專家了。
所謂原碼就是二進制定點表示法,即最高位為符號位,「0」表示正,「1」表示負,其餘位表示數值的大小。
反碼表示法規定:正數的反碼與其原碼相同;負數的反碼是對其原碼逐位取反,但符號位除外。
原碼10010= 反碼11101 (10010,1為符號碼,故為負)
(11101) 二進制= -2 十進制
補碼表示法規定:正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。
提示信息不要太少,可「某某數的反碼是某某」,而不是只顯示數值。
1.原碼的求法:(1)對於正數,轉化為二進制數,在最前面添加一符號位(這是規定的),用1表示負數,0表示正數.如:0000 0000是一個位元組,其中左邊第一個0為符號位,表示是正數,其它七位表示二進制的值.其實,機器不管這些,什麼符號位還是值,機器統統看作是值來計算. 正數的原碼、反碼、補碼是同一個數!
(2)對於負數,轉化為二進制數,前面符號位為1.表示是負數.
計算原碼只要在轉化的二進制數前面加上相應的符號位就行了.
2.反碼的求法:對於負數,將原碼各位取反,符號位不變.
3.補碼的求法:對於負數,將反碼加上二進制的1即可,也就是反碼在最後一位上加上1就是補碼了.
⑥ 補碼表示數據
為了表示負數,才發明了補碼。
對於兩位十進制數,范圍是:00~99。
當加上-1(或減去1)時,可以用加上99代替。
比如:
20 - 1 = 19,
20 + 99 = 119,限定兩位,就是19,
-1和99,存在一個「模」100。
利用「模」,就可以把負數,寫成正數。
對於8位2進制數,共有256個數字,范圍是:0000 0000 ~ 1111 11111 (0 ~ 255)。
當加上-1(或減去1)時,可以用加上1111 1111(255)代替。
-1和255,存在一個「模」256。
利用「模」,就可以把負數,寫成正數。
那麼,共有256個數字,用128個代表負數:
-1,可以寫成256-1=255=1111 1111;
-2,可以寫成256-2=254=1111 1110;
……
-128,可以寫成256-128=128=1000 0000。
就是說:128~255,是代表負數的:-128~-1。
另外128個數字:0~127,直接代表0和正數,不用變化。
所以,可表示的數據范圍就是:-128~127。
⑦ 計算機中使用補碼進行減法運算,兩個正數相加怎麼弄
都是一樣的,不管是正數負數
因為補碼就是專門為了解決計算機只能做加法而不能做減法而設計的
並且,補碼已經考慮了正零和負零這樣一個數卻有兩種表示形式的特殊情況,這是印度人發明的表示方法
而且,補碼也已經考慮了符號位,符號位也參加到運算中去了。
⑧ 計算機為什麼使用補碼來存儲數據
補碼的功能,類似於:
時針倒撥 3 小時,與正撥 9 小時,效果相同。
利用這種思路,計算機中的負數,也可以改為正數(即補碼)。
那麼,減法運算,也就可以用加法運算代替了。
因此,利用補碼,就能統一加減法,夠簡化計算機的硬體。
十進制比較容易理解:
25 - 1 = 24
25 + 99 = (一百) 24。
只要忽略進位,+99 就能代替-1。
+99 就稱為-1 的補數。
在這里用了 2 位 10 進制。
求補數的演算法:補數 = 負數 + 10^2。
通用的公式是:補數 = 負數 + 10^n。n 是位數。
-----------------------
計算機用二進制,補數,就改名為:補碼。
一個位元組,是 8 位 2 進制。
計數范圍是:0000 0000 ~ 1111 1111(十進制 255)。
計數周期是:2^8 = 256。
求補碼的演算法:負數的補碼=負數+2^n。
那麼:
-1 的補碼=-1 + 256 = 255 = 1111 1111。
-2 的補碼=-2 + 256 = 254 = 1111 1110。
。。。
例如,7-2 = 5,用補碼計算如下:
7 = 0000 0111
[-2] 補 = 1111 1110
---相加------------
得:(1) 0000 0101 = 5
舍棄進位,結果就完全正確。
藉助於補碼,負數就沒有了,從而就把「減法轉換為加法運算」。
-----------------------
補碼的來源,與原碼反碼毫無關系。
「取反加一、符號位也能參加運算」,這些,都沒有什麼理論依據。
通過原碼反碼,已經證明「符號位能參加運算」是錯誤的。
補碼能正確運算,並不是什麼「符號位也參加運算」。
因為,補碼,它就是一個正數,什麼符號位也沒有。
補碼的全部位,都是代表數據的,當然就都可以參加運算。
⑨ 計算機的補碼是誰發明的
美國的一個研究導彈的,錢學森在美國時的一個同事
⑩ 補碼有什麼用
計算機用帶符號位的原碼進行乘除運算時結果正確,而在加減運算的時候會出現了問題,於是發明了補碼,解決了這個問題。
簡單來說,補碼,主要用於負數和減法運算。
(1)補碼,使符號位能與有效值部分一起參加運算,從而簡化運算規則。例如,計算機內正0和負0是不同的數,但實際上都是0。採用補碼就簡化了運算。
(2)補碼,使減法運算轉換為加法運算,,進一步簡化計算機中運算器的線路設計
計算機里的硬體「加法器」,專門用於兩數相加。減一個數 的時候,可以變成加 一個 負的這個數,負數寫成補碼形式,就可以用 加法代替減法,用 「加法器」來執行。不需要另外設計一個新的「減法器」。硬體的運行速度比軟體快很多很多。