1樓:匿名使用者
計算機中,並沒有原碼和反碼,只是使用補碼,代表正負數。
使用補碼的意義:可以把減法或負數,轉換為加法運算。從而簡化計算機的硬體。
比如鐘錶,時針轉一圈,週期是 12 小時。
倒撥 3 小時,可以用正撥 9 小時代替。
9,就稱為-3 的補數。
計算方法:12-3 = 9。
對於分針,倒撥 x 分,就可以用正撥 60-x 代替。
如果,限定了兩位十進位製數 (0~99),週期就是 100。
那麼,減一,就可以用 +99 代替。
忽略進製,只取兩位數,這兩種演算法,結果就是相同的。
於是,99 就是 -1 的補數。
其它負數的補數,大家可以自己求!
求出了負數的補數,就可用加法,代替減法了。
計算機中使用二進位制,補數,就改稱為【補碼】。
常用的八位二進位制是:0000 0000~1111 1111。
它們代表了十進位制:0~255,週期就是 256。
那麼,-1,就可以用 255 = 1111 1111 代替。
所以:-1 的補碼,就是 1111 1111 = 255。
同理:-2 的補碼,就是 1111 1110 = 254。
繼續:-3 的補碼,就是 1111 1101 = 253。
最後:-128,補碼是 1000 0000 = 128。
計算公式:負數的補碼=256+這個負數。
正數,直接運算即可,不需要求補碼。
也可以說,正數本身就是補碼。
補碼的應用如: 7-3 = 4。
用補碼的計算過程如下:
7 的補碼=0000 0111
3的補碼=1111 1101
相加---得: (1) 0000 0100 = 4 的補碼。
捨棄進製,只保留八位,作為結果即可。
這就是:使用補碼,加法就代替了減法。
所以,在計算機中,有乙個加法器,就夠用了。
原碼和反碼,都沒有這種功能。
原碼和反碼,毫無用處。計算機中,根本就沒有它們。
2樓:黑科技
數值在計算機中是以補碼的方式儲存的,在探求為何計算機要使用補碼之前, 讓我們先了解原碼, 反碼和補碼的概念。
對於乙個數, 計算機要使用一定的編碼方式進行儲存。 原碼, 反碼, 補碼是計算機儲存乙個具體數字的編碼方式。
乙個數在計算機中的二進位制表示形式, 叫做這個數的機器數。機器數是帶符號的,在計算機用乙個數的最高位存放符號, 正數為0, 負數為1。比如,十進位制中的數 +2 ,計算機字長為8位,轉換成二進位制就是[00000010]。
如果是 -2 ,就是 [10000010] 。因為第一位是符號位,所以機器數的形式值就不等於真正的數值。例如上面的有符號數 [10000010],其最高位1代表負,其真正數值是 -2 而不是形式值130([10000010]轉換成十進位制等於130)。
所以將帶符號位的機器數對應的真正數值稱為機器數的真值。
原碼就是符號位加上真值的絕對值, 即用第一位表示符號, 其餘位表示值。
反碼的表示方法是:正數的反碼是其本身;負數的反碼是在其原碼的基礎上, 符號位不變,其餘各個位取反。
補碼的表示方法是:正數的補碼就是其本身;負數的補碼是在原碼的基礎上, 符號位不變, 其餘各位取反, 最後+1。 (即在反碼的基礎上+1)
舉例:那麼計算機為什麼要使用補碼呢?
首先,根據運算法則減去乙個正數等於加上乙個負數, 即: 1-1 = 1+(-1), 所以計算機被設計成只有加法而沒有減法, 而讓計算機辨別」符號位」會讓計算機的基礎電路設計變得十分複雜,於是就讓符號位也參與運算,從而產生了反碼。
用反碼計算, 出現了」0」這個特殊的數值, 0帶符號是沒有任何意義的。 而且會有[0000 0000]和[1000 0000]兩個編碼表示0。於是設計了補碼, 負數的補碼就是反碼+1,正數的補碼就是正數本身,從而解決了0的符號以及兩個編碼的問題:
用[0000 0000]表示0,用[1000 0000]表示-128。
注意-128實際上是使用以前的-0的補碼來表示的, 所以-128並沒有原碼和反碼。使用補碼, 不僅僅修復了0的符號以及存在兩個編碼的問題, 而且還能夠多表示乙個最低數。 這就是為什麼8位二進位制, 使用補碼表示的範圍為[-128, 127]。
按位取反是對補碼進行了取反(包括符號位)
3樓:做而論道
數值,在計算機系統中,一律採用補碼表示和儲存。
原碼和反碼,在計算機都不存在。
因此,按位取反,你只能對補碼進行了。
原碼、反碼、補碼的基本概念
4樓:匡金後方
原碼:乙個整數,按照絕對值大小轉換成的二進位製數,稱為原碼。
比如00000000
00000101是5的。
原碼。反碼:將二進位製數按位取反,所得的新二進位製數稱為原二進位製數的反碼。
取反操作指:原為1,得0;原為0,得1。(1變0;
0變1)比如:將00000000
00000101每一位取反,得1111111111111111
稱:11111111
是00000000
的反碼。反碼是相互的,所以也可稱:
和00000000
互為反碼。補碼:反碼加1稱為補碼。
也就是說,要得到乙個數的補碼,先得到反碼,然後將反碼加上1,所得數稱為補碼。
比如:00000000
的反碼是:11111111
那麼,補碼為:
所以,-5在計算機中表達為:11111111
11111011。轉換為十六進位制:0xfffffffb。
再舉一例,我們來看整數-1在計算機中如何表示。
假設這也是乙個int型別,那麼:
1、先取1的原碼:00000000
2、得反碼:
3、得補碼:
正數的原碼,補碼,反碼都相同,都等於它本身負數的補碼是:符號位為1,其餘各位求反,末位加1反碼是:符號位為1,其餘各位求反,但末位不加1也就是說,反碼末位加上1就是補碼。
原1011001100
反除符號位,按位取反。
補除符號位,按位取反再加1
5樓:沙里波特
帶符號數,有三種表示方法,即:原碼、反碼和補碼。
但是,在計算機系統中,數值一律用補碼來表示和儲存。
所以,在計算機系統中,原碼和反碼,都是不存在的。
使用補碼的意義:可以把減法或負數,轉換為加法運算。
從而簡化計算機的硬體。
補碼的概念,來自於:補數。
比如鐘錶,時針轉一圈,週期是 12 小時。
那麼,倒撥 3 小時,可以用正撥 9 小時代替。
9,就是-3 的補數。 計算方法:
同理,分針倒撥 x 分,可以用正撥(60-x)代替。
60,是分針的週期。
同理,三角函式的週期是 2π。那麼,在-π/2 處的函式值,就與(2π-π2)= 3π/2 處相同。
使用兩位十進位製數:0~99,週期就是 一百。
那麼,減一,就可以用 +99 代替。
捨棄進製,這兩種演算法,功能就是相同的。
於是,99 就是 -1 的補數。
其它負數的補數,可以按照下式來求:
補數 = 週期 + 負數
計算機中使用二進位制,補數,就改稱為【補碼】。
八位二進位制是:0000 0000~1111 1111。
相當於十進位制:0~255, 週期就是 256。
那麼,-1,就可以用 255 = 1111 1111 代替。
所以:-1 的補碼,就是 1111 1111 = 255。
同理:-2 的補碼,就是 1111 1110 = 254。
繼續:-3 的補碼,就是 1111 1101 = 253。
最後:-128 的補碼,就是 1000 0000 = 128。
負數補碼的計算公式:【 256 + 這個負數 】。
式中的 256 = 2^8,是八位補碼的週期。)
正數,並不存在補碼。所以,也不用求補碼,直接運算即可。
也有人亂說:正數本身就是補碼。)
用計算機計算: 7-3 = 4。
計算機中,並沒有減法器,必須改用補碼相加。
豎式如下:7 的補碼=
3的補碼=
相加---得: (1)= 4 的補碼。
捨棄進製,只保留八位,結果完全正確。
借助於補碼,可以簡化計算機的硬體。
原碼和反碼,並沒有這種功能。
所以,在計算機中,根本就沒有它們。
它們都是什麼? 就不用關心了。
原碼,反碼,補碼的定義是什麼。
6樓:沙里波特
有符號數,有三種表示方法,即原碼、反碼和補碼。
但是,在計算機系統中,數值一律用補碼來表示和儲存。
所以,在計算機系統中,原碼和反碼,都是不存在的。
想要理解補碼,要先從補數開始。
鐘錶的時針轉一圈,週期是 12 小時。
倒撥 3 小時,就可以用正撥 9 小時代替。
9 就是-3 的補數。 9 = 12-3。
同理,分針倒撥 x 分,就可以用正撥(60-x)代替。
60 是分針的週期。
對於兩位十進位制 0~99,週期就是一百。
這時,減一,你就可以用 +99 代替。
結果取兩位,捨棄進製。這兩種演算法,功能就是相同的。
99,就稱為-1 的補數。
98,就是-2 的補數。
負數的補數 = 週期 + 該負數。
利用補數,就可以用加法,代替減法運算。
正數,不需要求補數。
計算機使用二進位制,補數,就改稱:補碼。
八位二進位制,共有 256 個數字。負數的補碼 = 256+該負數。
16 位二進位制,共有 2^16 個數字。負數的補碼 = 65536+ 該負數。
這就是補碼的定義式。在你的書上,一定能找到這種算式。
在八位時:1 的補碼是:256-1 = 255 = 1111 1111(二進位制)。
2 的補碼是:254 = 1111 1110。
3 的補碼是:253 = 1111 1101。
128 補碼:128 = 1000 0000。
有了補碼,計算機僅需要乙個加法器,就可以加減通用了。
而原碼和反碼,不具備這種能力。
所以,原碼和反碼,究竟是怎麼定義,就不必關心了。
因為,它們,毫無用處。
7樓:沐閔馬佳晉
原碼:在數值前直接加一符號位的表示法。對於8位二進位制來說:+7]原=
7]原=反碼:正數的反碼與原碼相同。
負數的反碼,符號位為「1」,數值部分按位取反。+7]反=
7]反=補碼:正數的補碼和原碼相同。
負數的補碼則是符號位為「1」,數值部分按位取反後再在末位(最低位)加1。也就是「反碼+1」。+7]補=
7]補=
正負數的原碼,補碼,反碼求法,補碼 原碼 反碼怎麼運算的啊 詳細一點
正數的原碼,反碼,補碼都是一樣的。負數的原碼你應該知道的,就是帶符號位的二進位製數。反碼,符號位不變為1,其他每位二進位製數取反,1變0,0變1.補碼就是在反碼的基礎上,符號位不變,最低位加1,得到補碼。這裡有個簡單的求補碼的方法,從原碼的最低位向最高位看去,遇到第乙個1前,保持不變,第乙個1前面的...
原碼 反碼 補碼的介紹,原碼 反碼 補碼的基本概念
在計算機系統中,數值,一律採用補碼表示和儲存。原碼和反碼,都是不存在的。補碼,是乙個 代替負數 的正數。使用了補碼,計算機中就沒有負數了,同時,也就沒有減法運算了。因此,使用補碼,就能簡化運算,從而就簡化了硬體。補碼 正數 怎麼就能代替負數呢?用十進位制來說明,其原理就十分簡單。用 2 位 10 進...
補碼1 0110求原碼 反碼和N
3全部已知 n 補碼 1.0110,n 原碼 1.1010,n 反碼 n 0.1010。已知乙個數的補碼,求原碼的操作其實就是對該補碼再求補碼 如果補碼的符號位為 0 表示是乙個正數,其原碼就是補碼。如果補碼的符號位為 1 表示是乙個負數,那麼求給定的這個補碼的補碼就是要求的原碼。所以 n 原碼 1...