計算機中的原碼是什麼,計算機的原碼,反碼,補碼是怎麼回事?可以舉例說明嗎

時間 2022-11-15 08:21:07

1樓:聽不清啊

數值在計算機中是以補碼的方式儲存的,在探求為何計算機要使用補碼之前, 讓我們先了解原碼, 反碼和補碼的概念。

對於乙個數, 計算機要使用一定的編碼方式進行儲存。 原碼, 反碼, 補碼是計算機儲存乙個具體數字的編碼方式。

乙個數在計算機中的二進位制表示形式, 叫做這個數的機器數。機器數是帶符號的,在計算機用乙個數的最高位存放符號, 正數為0, 負數為1。比如,十進位制中的數 +2 ,計算機字長為8位,轉換成二進位制就是[00000010]。

如果是 -2 ,就是 [10000010] 。因為第一位是符號位,所以機器數的形式值就不等於真正的數值。例如上面的有符號數 [10000010],其最高位1代表負,其真正數值是 -2 而不是形式值130([10000010]轉換成十進位制等於130)。

所以將帶符號位的機器數對應的真正數值稱為機器數的真值。

原碼就是符號位加上真值的絕對值, 即用第一位表示符號, 其餘位表示值。

反碼的表示方法是:正數的反碼是其本身;負數的反碼是在其原碼的基礎上, 符號位不變,其餘各個位取反。

補碼的表示方法是:正數的補碼就是其本身;負數的補碼是在其原碼的基礎上, 符號位不變, 其餘各位取反, 最後+1。 (即在反碼的基礎上+1)

2樓:沙里波特

計算機中的原碼是什麼?--什麼也不是。

因為,計算機中,沒有原碼。

3樓:秒懂百科

原碼:一種計算機中對數字的二進位制定點表示方法

計算機的原碼,反碼,補碼是怎麼回事?可以舉例說明嗎?

4樓:王王王小六

原碼、反碼和補碼是計算機中對

數字二進位制的三種表示方法。

1、原碼

原碼(true form)是一種計算機中對數字的二進位制定點表示方法。原碼表示法在數值前面增加了一位符號位(即最高位為符號位):正數該位為0,負數該位為1(0有兩種表示:

+0和-0),其餘位表示數值的大小。

例如:用8位二進位制表示乙個數,+11的原碼為00001011,-11的原碼就是10001011。

2、反碼

反碼是數值儲存的一種,多應用於系統環境設定,如linux平台的目錄和檔案的預設許可權的設定umask,就是使用反碼原理。反碼的表示方法是:正數的反碼與其原碼相同;負數的反碼是對正數逐位取反,符號位保持為1。

例如:[+7]反= 0 0000111 b;

[-7]反= 1 1111000 b。

3、補碼

正數:正數的補碼和原碼相同。負數:

負數的補碼則是符號位為「1」。並且,這個「1」既是符號位,也是數值位。數值部分按位取反後再在末位(最低位)加1。

也就是「反碼+1」。

例如:[+7]補= 0 0000111 b;

[-7]補= 1 1111001 b。

擴充套件資料

原碼、反碼、補碼的轉換方法如下:

(1) 已知原碼,求補碼。

例:已知某數x的原碼為10110100b,試求x的補碼和反碼。

首先通過原碼的首位確定該數字的正負,若為正數,反碼與原碼相同,補碼比原碼在末尾加1;若為負數,求其反碼時,符號位不變,數值部分按位求反;求其補碼時,再在其反碼的末位加1。

(2)已知補碼,求原碼。

按照求負數補碼的逆過程,數值部分應是最低位減1,然後取反。但是對二進位制數來說,先減1後取反和先取反後加1得到的結果是一樣的,故仍可採用取反加1的方法。

5樓:匿名使用者

計算機以二進位制補碼儲存資料

以16位機器為例:

比如83的二

進製碼為:0000 0000 0101 0011由於正數的原始碼、反嗎、補碼,上面的既是原始碼,也是反碼和補碼下面通過負數講解原始碼、反碼、補碼之間的關係以-83為例

先求出-83絕對值的原始碼:0000 0000 0101 0011計算機區分正負數通過判斷最高位符號位,1為負數、0為正數那麼-83的原始碼為:1000 0000 0101 0011反碼在原始碼基礎上按位取反,符號位不變:

1111 1111 1010 1100

補碼在反碼的基礎上加1:1111 1111 1010 1101補碼轉原始碼:補碼基礎上按位取反後加一,符號位在取反時不變,加一時最高位符號位有進製的,進製忽略

取反:1000 0000 0101 0010加1:1000 0000 0101 0011

6樓:匿名使用者

十進位制→ 二進位制(怎麼算?要是不知道看計算機基礎的書去)47   → 101111

有符號的整數    原碼    反碼    補碼47      00101111  11010000  00101111(正數補碼和原碼相同)

-47      00101111  11010000  11010001(負數補碼是在反碼上加1)

計算機中原碼,補碼,反碼,是什麼?

7樓:第恕檀癸

原碼:就是原碼,真實的碼

反碼:在原碼的基礎上,符號位不變,數值位按位取反補碼:1)正數的補碼:與原碼相同。

【例1】+9的補碼是00001001。

(2)負數的補碼:符號位為1,其餘位為該數絕對值的原碼按位取反然後整個數加1。

計算機原碼 反碼 補碼是什麼?這跟程式設計有什麼用?

8樓:繆湛恩廣端

數,小學都學過,它們代表數量,可以進行加減乘除。

計算機裡面,並沒有真的數字,都是一些高、低電平而已。

可用1、0

來表示。其實,這些都是碼,並不是數。

用這些碼,代表我們說的數,就必須有一些約定。

這就是原碼、反碼、補碼、bcd

碼、格雷碼...等等。

9樓:蒲佳夔岑

b,是二進位制數的標記。

h,是16進製制數的標記。

o,是八進位制數的標記,也有用q的。

十進位制,不標也可,要標就標上d。

10樓:沙里波特

在計算機中,只是用了補碼,代表正負數。

在計算機中,並沒有原碼和反碼。所以,原碼和反碼,沒有任何用處。

補碼是存在記憶體中的機器數,它是怎麼代表數字的呢?

如果用組合語言程式設計,確實是需要掌握補碼的特點的。

用高階語言程式設計時,並不涉及計算機內部,那麼補碼也就沒有什麼用處了。

誰能告訴我計算機的原碼補碼和反碼的具體定義是什麼?

11樓:厙煥卻愉婉

數在計算機中是以

二進位制形式表示的。

數分為有符號數

和無符號數

。原碼、反碼、

補碼都是有

符號定點數

的表示方法。

乙個有符號定點數的最高位為符號位,0是正,1是副。

以下都以8位

整數為例,

原碼就是這個數本身的二進位制形式。

例如0000001

就是+1

1000001

就是-1

正數的反碼和補碼都是和原碼相同。

負數的反碼是將其原碼除符號位之外的各位求反

[-3]反=[10000011]反=11111100

負數的補碼是將其原碼除符號位之外的各位求反之後在末位再加1。

[-3]補=[10000011]補=11111101

乙個數和它的補碼是可逆的。

為什麼要設立補碼呢?

第一是為了能讓計算機執行減法:

[a-b]補=a補+(-b)補

第二個原因是為了統一正0和負0

正零:00000000

負零:10000000

這兩個數其實都是0,但他們的原碼卻有不同的表示。

但是他們的補碼是一樣的,都是00000000

特別注意,如果+1之後有進製的,要一直往前進製,包括符號位!(這和反碼是不同的!)

[10000000]補

=[10000000]反+1

=11111111+1

=(1)00000000

=00000000(最高位溢位了,符號位變成了0)

有人會問

10000000這個補碼表示的哪個數的補碼呢?

其實這是乙個規定,這個數表示的是-128

所以n位補碼能表示的範圍是

-2^(n-1)到2^(n-1)-1

比n位原碼能表示的數多乙個

又例:1011

原碼:01011

反碼:01011

//正數時,反碼=原碼

補碼:01011

//正數時,補碼=原碼

-1011

原碼:11011

反碼:10100

//負數時,反碼為原碼取反

補碼:10101

//負數時,補碼為原碼取反+1

0.1101

原碼:0.1101

反碼:0.1101

//正數時,反碼=原碼

補碼:0.1101

//正數時,補碼=原碼

-0.1101

原碼:1.1101

反碼:1.0010

//負數時,反碼為原碼取反

補碼:1.0011

//負數時,補碼為原碼取反+1

在計算機內,定點數有3種表示法:原碼、反碼和補碼

所謂原碼就是前面所介紹的二進位制定點表示法,即最高位為符號位,「0」表示正,「1」表示負,其餘位表示

數值的大小。

反碼表示法規定:正數的反碼與其原碼相同;負數的反碼是對其原碼逐位取反,但符號位除外。

補碼表示法規定:正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。

12樓:沙里波特

帶符號數,有三種表示方法,即:原碼、反碼和補碼。

但是,在計算機系統中,數值一律用【補碼】來表示和儲存。

所以,在計算機系統中,原碼和反碼,都是不存在的。

不存在的東西,也就不必關心了。

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

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

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

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

36 - 1 = 35

36 + 99 = (1) 35

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

那麼,就是說:

99,就是-1 的補數。

利用「補數」,就可用「加法」代替「減法」。

這就可以簡化計算機的硬體。

計算方法:

-1 的補數 = 100 - 1

其中的 100,是兩位十進位制數的:週期。

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

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

範圍是:0000 0000 ~ 1111 1111。

寫成十進位制,就是:0~255。計數週期就是:256。

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

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

1000 0000 = 128,就是-128 的補碼。

計算公式: 補碼 = 週期 + 負數。(再變為二進位制。)

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

正數,直接參加運算即可,不許做任何變換。

因此,補碼的定義,如下:

正數的補碼: 正數,沒有補碼,直接運算。

負數的補碼: 週期 + 該負數。

---------------------

原碼和反碼,在計算機中,並不存在。

原碼和反碼,只能寫在紙上,或停留在口中。

無論它們是怎樣定義的,都是毫無意義的事。

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

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

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

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

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

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

計算機中的cadcamcaicat分別是什麼意思

cad computer aided design 計算機輔助設計 cam computer aided manufacturing 計算機輔助製造 cai computer aided instruction 計算機輔助教學 cat computer aided translation 計算機輔助...

計算機中的多種匯流排如何相容

理論上採用標準介面,協議就資料的交換沒問題,但實際上匯流排一般是會掛接第三方的裝置,太多的匯流排協議和第三方裝置相容性是沒法保證的,出現問題都沒法下手,家家都說我是好的,你不知道誰是元凶。工程例項 西門子dp匯流排 菲尼克斯的interbus匯流排 艾默生的ff匯流排,方案論證時可行,最終結果是用一...