原碼 反碼 補碼 按位取反( )

2023-07-15 22:06:22 字數 6170 閱讀 1845

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...