正數和負數的補碼是怎麼計算的?

2025-03-20 01:05:18 字數 7287 閱讀 4532

1樓:做而論道

所謂的「補碼」,是乙個「代替負數」的正數。

比如,鐘錶的時針,倒撥 3 小時,可以用正撥 9 小時代替。

演算法是:+9 = 3 + 12。公升尺。

其中的 12,是時針的週期。+9 就稱為-3 的補數。

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

三角函式,週期是 2π。

任何的負角度,也可以用正角度代替。

如:-π2,其等效值是:-π2 + 2π =3π/2。

通用的換算公式,是:等效的正數 = 負數 + 週期。

等效值,在計算機專業,就重新命名:補碼閉首。

對於 8 位 2 進位數,計數週期就是:2^8 = 256。

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

128 的補碼: 128 = 1000 0000。

零和正數,並不存在「等效的正數」。

所以,零和正數,根本就不存在補碼。

用補碼(正數)代替負數之後,計算機中,就沒有負轎笑數數了。

同時,也就沒有減法運算了。

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

只要配置乙個加法器,就可以走遍天下。

補碼的**和意義,就是這樣的。

補碼,與原碼反碼,並無半點關係。

取反加一,也沒有任何的理論基礎,都是瞎編的。

2樓:賽藍寇光臨

用代符號的八位二進位表示資料,最高位為符號位,1代表負數,0代表正書。其餘的七位二進位數來代表實際數值,即是原碼。

所以[+50d]原=00110010b,[-50d]原=10110010b。

正數的補碼與原碼相同,負數的補碼,變換規則為:

在原碼的基礎上陸滲,符號位不變,其餘七位各位取反,然後在最拆爛後一位加1,該向前進位的就進。

所以[-50d]補=11001111。

d表示十進位數,b表示二進位數。

用原碼只能表示-127到127,永補碼錶示為-128到127。

對於你的補充問題早御脊,我也不太清楚。大概是看著方便吧。

計算乙個負數的補碼時,最後一步要加1?拜託了各位 謝謝

3樓:修洋章春曉

不會你可以推一推。

如果存在,那麼在加1之前求得的反碼為全1

那麼原碼就是反碼去反,為全0

原碼全0就是0,而0的補碼並不是去反加1,與實際相矛盾,所以是不存在這種情況的。

4樓:做而論道

取反加一,只是乙個方法,並不是補碼的定義。

補碼的**,並不是什麼原碼反碼符號位以及取反加一。

補碼,其實,是乙個「代替負數運算的」的正數。

藉助於補碼,減法,就可以用加法代替。

利用補碼,統一了加減法,目的是簡化計算機的硬體。

為什麼正數(補碼)能夠代替負數呢?

用十進位來說明,比較容易理解。

如果限定【僅用 2 位 10 進位數】,可以有:

24 + 99 = (一百) 23

保留 2 位數,就必須捨棄進位。

此時,+99 就和-1 是等效的。

99,就稱為-1 的補數。

98,是-2 的補數。

如果,使用 3 位 10 進位數,-1 的補數,就是+999 了。

求補數的公式:

補數 = 負數 + 10^n, n 是位數。

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

8 位 2 進位的範圍:0000 0000~1111 1111 (十進位 255)。

共有 2^8 = 256 組。

此時,-1 的補碼,就是 255 (1111 1111)。

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

求補碼的公式:

補碼 = 負數 + 2^n, n 是位數。

只有負數,才需要用補碼替換。

正數,不存在變換成補碼的問題。

在 256 組二進位中,用 128 組來代替負數:-1~-128。

1 的補碼是:-1 + 2^8 = 255 = 1111 1111。

128 的補碼是:-128 + 2^8 = 128 = 1000 0000。

以上,就是【補碼的**,以及意義】。

由求補碼的公式:補碼 = 負數 + 2^n。

就可以推出「絕對值取反加一」的簡便方法。

注意:這個簡便方法中,只用了「絕對值」,並沒有用「原碼反碼符號位」。

原碼反碼符號位,是怎麼來的? 不知道。

這些,都沒有理論基礎,屬於無稽之談。

而且,-128 還沒有原碼和反碼,你怎麼「用原碼取反加一」求補碼!

負數怎麼算,用補碼嗎?

5樓:link專注休閒娛樂

可以通過補碼運算,通過最野滲高位和次高位的進位相異或可以判斷計算結果是否溢位。

計算機中的有符號數有三種表示方法,即原碼、反碼和補碼。三種表示方法均有符號位和數值位兩部分,符號位都是用0表示「正」,用1表示「負」,而數值位,三種表示方法各不相同。

在計算機系統中,數值一律用補碼來表示和儲存。原因在於,使用補碼,可以將符號位和數頌悄脊值域統一處理;同時,加法和減法也可以統一處理。

正整數的補碼是其二進位表示,與原碼相同。

例:+9的補碼是00001001。(備註:

這個+9的補碼是用8位2進位來表示的,補碼錶示方式很多,還有16位二進位補碼錶示形式,以及32位二進位補碼錶示形式,64位進位補碼錶示形式等。每一種補碼錶示形式都只能表示有運纖限的數字。)

負數解釋:求負整數的補碼,將其原碼除符號位外的所有位取反(0變1,1變0,符號位為1不變)後加1。

同乙個數字在不同的補碼錶示形式中是不同的。比如-15的補碼,在8位二進位中是11110001,然而在16位二進位補碼錶示中,就是1111111111110001。以下都使用8位2進位來表示。

6樓:做而論道

補碼,實際上,就是乙個「代替負數」的正數。

使用了補碼之後,計算機中,就沒有負數了。

同時,也就沒有減法運算了。

只要配置乙個加法器,計算機,就能橫行天下了。

這就是補碼的作用。

補碼(乙個正數),怎麼就能代替負數呢?

想一想週期性的規律吧。

比如,2 位 10 進位數(0~99),計數週期就是 10^2=100。

可有: 25 - 1 = 24

25 + 99 = 一百) 24

捨棄進位的 1,只保留 2 位數,+99 就能代替-1!

而且,加法,也能代替減法迅鍵運算!

同樣,+98 也可以代替-2。

這些正數,就稱為「負數的補數」。

求補數的公式,顯然就是:

補數=負數+10^n

式中:n 是補數的位數。

10^n,是 n 位 10 進位數的週期。

這公式,在三角函式中,也有雷同的表現。

三角函式,是以 2π 為週期的。

任何負角度,加上週期,就可以轉換為正角度。

如:x =-2,與其等效的正角度,即為:

x =-2 + 2π =3π/2

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

求負數的補碼,公式是:

補碼 = 負數 + 2^n

2^n,是 n 位 2 進位數的計數週期。

對於 8 位 2 進位數,週期就是 2^8 = 256。

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

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

128 的補碼就是 128 = 1000 0000 (二進位)。

正數,不用轉換,也不許做任何轉換,必須直接去參加算。

所以,零和正數,並沒有補碼。

求補碼掘首,不需要「符號位原碼反碼取反加一符號位不變」。

那一大堆步驟,並沒有什麼數學理論依據。

數學不好的老外,弄不懂週期,才用那些騷操作。

而且,在計算機中,根本就不用原碼和反碼!

忽悠大家學了這些,一丁點用處判昌數,也都沒有的。

怎樣求負數補碼?

7樓:做而論道

求負數的補碼,通常都是說:先求原碼、再取反加一。

但是,原碼,是有缺陷的。

因為,天下只有乙個零。而在原碼中,卻編造了兩個碼:+0、-0。

所以,八位原碼的表示範圍,只能是:-127~+127。

而在八位的補碼中,只有一森肆個零,所以就多出乙個:-128。

用「取反加一」的方法,求-0 和-128 的補碼,這就尷尬了!

求-0 的補碼,得出的是

符號位竟然是 0 !難道,-0,是正數嗎?

求-128 的補碼,更是無處下嘴。

其實,取反加一,並沒有什麼道理。也可以說,這是錯誤的。

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

使用了補碼之後,在計算機中,就沒有負數了。

同樣,在計算機中,也就沒有減法運算了。

利用補碼,就是把加減法,統一為加法運算。

使用補碼的目的,就是簡化計算機的硬體。

補碼(乙個正數),怎麼就能代替負數呢?

你看時針,倒撥 3 小時,可以用正撥 9 小時代替。

你看三角函式,-π2、+3π/2,兩者函式值也是相等的。

如果限定,只用 2 位 10 進位數,那麼有:

25 + 99 = 一百) 24

如果忽略進位一百(10^2),+99 就和-1 等效。

上面這些正數,就是負數的補數。

求補數的計算公式: 補數(即正數) =負數 + 週期。

而正數,不可變換,必須直接參加運算。

所以,正數,就沒有補數。

計算機用二進位,就稱為補碼了。

8 位 2 進位,週期是:2^8 = 256。

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

2 的補碼,是此棚轎:254 = 1111 1110。

-128 的補碼是:128 = 1000 0000。

此時,樓主的和敏問題,就解決了。

補碼的定義式:

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

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

按此公式求補碼,是極為簡便的,而且還能理解補碼的意義。

那麼,就不要學「原碼反碼取反加一符號位不變」了。

老外數學不好,也只能擺弄哪些「隔,路」的花樣。

負數補碼怎麼求?

8樓:做而論道

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

只要會求補碼,就夠用了。

計算機,所計算的位數,是固定的。

八位機就是八位,16 位機返臘就是 16。。。

位數,限定了之後,即使出現了進位,也不再考慮。

在這個前提下,加法、減法,就可以互換。

比如,兩位十進位是 00~99。

週期是 100(即一百)。

減一,就和 +99,作用相同。

25 + 99 = 一百) 24

捨棄進位,加法,就能起「減答虧法」的作用。

99,就是-1 的補數。

藉助於補數,加減法,就可以統一為加法。

藉助於補碼,就可以簡化計算機的硬體。

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

週期是 2^8 = 256。

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

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

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

零和正數,不存在補碼,直接就可以參加計算。

補碼,就是這麼計算出來的。

補碼,和原碼反碼,毫無關係。

計算機中,也並沒有原碼反碼,因此,就不必討論它們。

正數和負數的含義是什麼正數負數的定義是什麼?

正數和負數是以零為分界點的。大於零的數是正數 小於零的數是負數 一個是大於零的,劃一條數軸,右邊是正數,左邊是負數,中間是0,也就是分界線 大於零正數 小於零負數 大於0的數.若一個數大於零 0 則稱它是一個正數 正數的前面可以加上正號 來表示,但在前面沒有數時正號通常省略不寫 比零小 0 的數 用...

為什麼正數的補碼是它本身

補碼,其實,這就是乙個 代替負數 的正數。使用了補碼 正數 之後,在計算機中,就沒有負數了。同時,在計算機中,也就沒有減法運算了。所以,利用補碼,就能夠把加減法,統一為加法運算。使用補碼的目的,就是 簡化計算機的硬體。補碼 乙個正數 怎麼就能代替負數呢?你看時針,倒撥 小時,可以用正撥 小時代替吧?...

負數增長率和正數增長率怎麼計算如果去年利潤為負數,今年利潤為正數,怎樣算增長率,請會計專業舉例回答

以一個基期做基數,比如說,2015年收入是100萬,2016年年收入是120萬,那收入增長率是 120 100 100 100 20 這是正數增 長率。假如2015年收入120萬,2016年收入是100萬,增長率是 100 120 120 100 16.67 這是負增長率。擴充套件資料 由於對比的基...