計算機裡的數都是以補碼形式出現的嗎

時間 2023-04-14 13:25:10

1樓:匿名使用者

1.計算機裡的數都是補碼形式,因為cpu只會做加法,數的補碼形式就可以用加法實現減法運算,進而以加法完成所有的運算。至於數以什麼碼的形式輸入和輸出,程式設計人員是可以控制的。

2.計算機裡數碼的位數是2的正整數次方,比如4位、8位、16位,因為cpu及周邊電路一旦製成,一次處理資料位數、匯流排位數、各種暫存器位數就都固定下來,都是2的正整數次方位,這樣選擇的理由很多,可參照有關資料瞭解。

3.一個8位的補碼數,它表示數的範圍是-128~+127,原碼錶示數的範圍是-127~+127,反碼錶示數的範圍是-127~+127,就是因為最高位是符號位,實際數位只有7 位。

2樓:匿名使用者

舉個2位機的例子,假設我們的pc機是2位機,即只能表示4個數字:00,01,10,11,這時byte的範圍是0~3,所謂補碼,就是這樣來對映:

所謂反碼,就是這樣來對映:

所謂原碼,就是這樣來對映:

由此可見,所謂原碼、反碼、補碼都只是一種二進位制到十進位制的對映定義,補碼是一一對映,原始碼和反碼是單射但不是滿射,對十進位制的0都有兩個二進位制與其對應(+0、-0),所以浪費了一個碼。補碼的另一個優點是加法和減法可以統一運算和處理,溢位也能自動取模。

所以,計算機裡的數無所謂原碼、反碼、補碼,是人對這些二進位制數的意義的解釋才有了「x碼」的區別。

3樓:匿名使用者

基本是。嵌入式中未必。

80x86架構肯定是。

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

4樓:做而論道

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

如: 24 - 1 = 23

24 + 99 = 一百) 23

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

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

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

5樓:可軒

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

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

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

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

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

計算機如何區別原碼與補碼

6樓:匿名使用者

計算機沒辦法區分任何檔案形式的存在,本質上就是超多的高低電路在做布林運算

不管是原碼,反碼,補碼都是以二進位制的形式轉換而來,為什麼用二進位制,就是為了契合計算機的高低電路,所有的計算數都是以補碼轉成高低電路的,在做電路計算。

開發人員(10進位制)--編譯器(2進位制)--作業系統(補碼)--計算機硬體(高低電路)

這麼描述比較通俗,但不嚴謹,真的感興趣可以從作業系統和資料結構入手。

7樓:網友

原碼就是早期用來表示數字的一種方式: 一個正數,轉換為二進位制位就是這個正數的原碼。負數的絕對值轉換成二進位制位然後在高位補1就是這個負數的原碼。

正數的補碼與原碼相同,負數的補碼為 其原碼除符號位外所有位取反(得到反碼了),然後最低位加1.正數的反碼和補碼都與原碼相同。

負數的反碼為對該數的原碼除符號位外各位取反。

負數的補碼為對該數的原碼除符號位外各位取反,然後在最後一位加1

8樓:沙裡波特

使用補碼的意義在於:可把負數變正數,可把減法變加法。

從這個實用性來講,計算機中,只是用補碼。原碼根本就不存在。

計算機,是執行程式的。程式,都是由人,編寫的。

所以,不是計算機來區別原碼、補碼。

而是由人,來區別。

如果限定,只是使用兩位十進位制數 0~99,共有一百個。

那麼,減一,就可以用 +99 代替:

只保留兩位,忽略進位,結果就是相同的。

99,就稱為-1 的補數。

看到了嗎? 出現了進位。

如果你忽略了進位,實際上就是減法運算!

--這時,99 就是補數,是當做-1 來用的。

如果不忽略進位,結果就是 1 百 23,這還是加法運算。

--此時,99,就是正常的數字。

一個**,到底是原來的數字,還是代表負數?

就看你怎麼對待它了。

這些都是由程式設計人,來決定。

計算機,它才不管這些。

9樓:匿名使用者

正負整數都用補碼進行儲存,0開頭就是正整數 補碼=原數的二進位制,1開頭就是負整數,再補碼一次就是原碼的二進位制。

10樓:匿名使用者

個人的理解重心主要要搞清為什麼有原碼/反碼/補碼。

為什麼會出現這三種編碼制式?

你肯定是這個沒搞清,這個搞清楚了,不存在什麼區不區分的問題。

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

11樓:沙裡波特

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

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

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

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

他只認識 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 的補碼。

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

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

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

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

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

模,就是**的總個數。

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

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

12樓:做而論道

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

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

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

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

13樓:郜訪彤儀燁

使用補碼的好處:

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

[a]補+[-b]補。

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

統一了正0和負0

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

14樓:翟惜海農婀

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

補碼的特性:

1、一個負整數(或原碼)與其補數(或補碼)相加,和為模。

2、對一個整數的補碼再求補碼,等於該整數自身。

3、補碼的正零與負零表示方法相同。

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

15樓:做而論道

為什麼用補碼錶示負數?

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

目的:簡化計算機的硬體。在兩位數之內,+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 是二進位制的位數。)

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

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

16樓:煙雅美奇原

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

17樓:信曼寒蕢飲

採用補碼運算具有如下兩個特徵:

1)因為使用補碼可以將符號位和其他位統一處理,同時,減法也可以按加法來處理,即如果是補碼錶示的數,不管是加減法都直接用加法運算即可實現。

2)兩個用補碼錶示的數相加時,如果最高位(符號位)有進位,則進位被捨棄。

這樣的運算有兩個好處:

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

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

微型計算機中的數為什麼常用補碼錶示

18樓:做而論道

藉助於補碼,可以把負數轉換成正數,這就可以用加法,代替減法運算。

因此,就可以簡化計算機的硬體。

計算機中,所運算的位數,是固定的,如八位機、16 位機。。。

位數限定之後,加減法,就可以互換。

如兩位在十進位制時,-1 就可以用 +99 代替。

只取兩位,這兩種演算法,結果相同。

同樣道理,時鐘倒撥 3 小時,可用正撥 9 小時代替。

分針倒撥 x 分,可用正撥 (60-x) 代替。

負數所對應的正數,稱為:補數。

求補數,就要用到計數系統的【週期】。

上面用的週期,分別是:一百、12、60。

知道了週期,負數的補數,小學生都會求。

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

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

共有 256 組**。

所以,八位二進位制數的計數週期,就是:256 = 2^8。

在 256 個補碼中,有 128 個負數:-1 ~ 128。

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

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

求補碼,千萬別用「原碼反碼取反加一」,這些都是誤導。

學原碼反碼符號位這些垃圾,你就弄不懂補碼的意義。

也就不知道,為什麼計算機要使用補碼,而不用原碼和反碼。

補碼,是小學生都能弄懂的知識,計算機專家卻偏偏說不明白。

為什麼計算機中所有的數都用補碼錶示?

19樓:做而論道

補碼,其實,它就是一個「代替負數」的正數。

使用了補碼,計算機中,就沒有負數了,也就沒有減法了。

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

為什麼使用補碼?

就是為了簡化計算機的硬體。

補碼(也就是正數),怎麼就能代表負數呢?

其實,道理也很簡單。

你看2 位 10 進位制數吧:

25 + 99 = 一百) 24

進位是10^2 = 100,這也是 2 位數的計數週期。

這個進位,顯然不在 2 位數之中。

結果,只取 2 位數,+99和-1 的作用,就是相同的。

就是說,只要捨棄了進位,正數,就可以代替負數。

這個正數,就是「負數的補數」。

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

-π/2 和 +3π/2,這兩個角度,功能也是相同的。

負角度,和正角度,要怎麼變換呢?

也是用同樣的公式: 正角度 = 負角度 + 週期(2π)。

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

8 位 2 進位制是:0000 0000~1111 1111 (十進位制 255)。

其計數週期是:2^8 = 256。

此時,-1 就可以用 255 (1111 1111) 代替。

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

正數,本身就是正數,必須直接參加運算,不許再作任何變換。

所以,正數,根本就沒有補數(補碼)。

由此,你就可以推出補碼定義式:

當 x >=0, [x ]補 = x; 零和正數不用變換。

當 x < 0, [x ]補 = x + 2^n。 n 是補碼的位數。

以上就是「求補碼的正規做法」。

示例,5 - 7 = 2,用補碼計算如下:

-7 的補碼 =

--相加---

得: (1)= -2 的補碼。

捨棄進位,只取 8 位,結果就是正確的。

這就說明了,藉助於補碼,就可以用加法,實現減法運算。

原碼和反碼,都沒有這種功能。

所以,在計算機中,根本就不使用原碼和反碼。

計算機裡的進位制是什麼,計算機中的進位制數都是什麼意思啊?

福財二妹 計算機的二進位制資料是用0和1兩個數碼來表示的數。它的基數為2,進位規則是 逢二進一 借位規則是 借一當二 由德國數理哲學大師萊布尼茨於1679年發明。當前的計算機系統使用的基本上是二進位制系統,資料在計算機中主要是以補碼的形式儲存的。計算機中的二進位制則是一個非常微小的開關,用 開 來表...

數 1存在計算機裡是怎麼存的?二進位制形式是什麼

甄美媛葉午 看你是幾位數,以16位二進位制數為例 10000 0000 0000 0001 11000 0000 0000 0001 原碼錶示 11111 1111 1111 1111 補碼錶示 11111 1111 1111 1110 反碼錶示 以8位二進位制數為例 10000 0001 1100...

計算機中,非純負小數的補碼怎麼表示

01 0.75 移碼複雜一點,1.11表示 0.25 也是 0 為正數有四種表示方法 原碼 指原來那個 帯符號數 25,而0,負數對每一位 取反 即可,0.11 0.75,1.10 0.25 即0.01地相反數 移碼 1.01 0,1為負數。和原碼地規律一樣 反碼,正數不變.11表示0.75 2 1...