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匯流排,方案論證時可行,最終結果是用一...