原碼,補碼和反碼我看不懂,特別是公式,請各位幫幫我

2025-03-13 12:40:04 字數 4636 閱讀 2151

1樓:哀煙昂戌

原碼就是把原來的數化成2進位。

比如10的原碼就是00001010,+10的原碼是00001010,最高位的0代老中簡表。

這個數是正數(最高位就是符號位).

10的原碼就是10001010,最高位的培搏1代表這個數是負數。

10的原碼是00001010,那他的反碼,補碼都和原碼相同。

也是00001010,原因是正數的原。

反。補碼相同。

10的原碼侍褲是10001010,那他的反碼是11110101,也就是符號位不變,其他位0變1,1變0.

他的補碼是在反碼的基礎上,最低位加1,也就是11110110.

明白了吧?

2樓:做而論道

在計算機系統中,數值,一律用補碼錶示和存放。

補碼,就是乙個代替負數運算的正數。

比如 2 位 10 進位:

24 + 99 = 一百) 23

結果只取兩位,就不用理會進位。

此時,+99 就能當做-1 使用。

同理,+98 就能當做-2。

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

補數的定義式:補數 = 負數 + 10^2。

利用補數,就是把負數變成正數山譁,減法,就能用加法來實現。

-逗悄行---

計算機用二運差進位,補數,就改稱:補碼。

8 位 2 進位,範圍是:0000 0000~1111 1111。

用十進位來說明,就是:0 ~ 255。

補碼的定義式,就是: 補碼 = 負數 + 2^8。

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

2 的補碼:-2 + 256 = 254 ( 1111 1110)。

128 的補碼:-128 + 256 = 128 ( 1000 0000)。

藉助於補碼,可用加法來實現減法,就可以簡化計算機的硬體。

原碼、反碼,都沒有這種功能。

因此,計算機中,並沒有原碼和反碼。

所以,原碼和反碼,也沒有任何理論上的定義公式。

3樓:任菊經秋

mov只是簡單的儲存,單看資料本身,無法判斷乙個二進位數有沒有符號,是用補碼、反碼、還是原碼,甚至是否代表乙個數字。那些都是程式設計的人為資料賦予的意義。如果有大段程式,可以看出邏輯、演算法,也許可以辨別。

一般來說,表達負整數,目前只有用「補碼」乙個方法。「反碼」和「原碼」純屬歷史,微處理器年代已經不用了。至於改二冊敗公升進位數有沒有符號,就要從程式州老的上下文找枯液線索了。

有些指令是分有符號和無符號的,如果出現了,就比較好判斷。以。

指令集為例:乘。除。

右移。無符號。

muldiv

shr有符號。

imulidivsar

4樓:沙裡波特

無論鏈敬什麼型別的數字,在計算機中,都是以「二進位**」儲存的。

正負數,在計算機中,只是用【補碼】來儲存。

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

因為,原碼反碼的定義,都是不合理的,不適於計算。

求八位補碼的公式:零和正數:就是該數字本身。

負數的補碼:【256+這個負數】昌喚瞎。

只要按照公式求出補碼即可,不用理會原碼和反碼。

因為,補碼,和原碼反碼,沒有任何關係。

原碼反碼補碼計算口訣

5樓:做而論道

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

在計算機中,並沒有原碼和反碼。所以,原碼和反碼,與補碼的轉換,是毫無意義的。

你只要掌握「數值與補碼的轉換」,就夠用了。

下表中,有這個轉換的關係式:

一文搞懂原碼、反碼、補碼

6樓:騰揚數碼

需要宣告的是,本文涉及到的數字及運算均基於8位bit下的值。

最高位為符號位,0代表正數,1代表負數,非符號位為該數字絕對值的二進位表示。

如:127的原碼為0111 1111

127的原碼為1111 1111

正數的反碼與原碼一致;

負數的反碼是對原碼按位取反,只是最高位(符號位)不變

如:127的反碼為0111 1111

127的反碼為1000 0000

正數的補碼與原碼一致;

負數的補碼是該數的反碼加1

如:127的補碼為0111 1111

127的補碼為1000 0001

總結一下就是:

下面就來**一下,為啥要用補碼來表示數字。

如果計算機內部採用原碼來表示數,那麼在進行加法和減法運算的時候,需要轉化為兩個絕對值的加法和減法運算;

計算機既要實現加法器,又要實現減法器,代價有點大,那麼可不可以只用一種型別的運算器來實現加和減的遠算呢?

很容易想到的就是化減為加,舉乙個生活中的例子來說明這個問題:

時鐘一圈是360度,當然也存在365度,但其實它和5度是一樣的;

相同的道理,-30度表示逆時針旋轉30度,其與順時針旋轉330度是一樣的;

這裡數字360表示時鐘的一圈,在計算機裡類似的概念叫,它可以實現化減為加,本質上是將溢位的部分捨去而不改變結果。

易得,單位元組(8位)運算的模為256=2^8。

在沒有符號位的情況下,127+2=129,即:

這時,我們將最高位作為符號位,計算機數字均以補碼來表示,則1000 0001的原碼為減1後按位取反得1111 1111,也就是-127。

也就是說,計算機裡的129即表示-127,相當於模256為一圈,順時針的129則和逆時針127即-127是一樣的。

故可以得到以下結論:

負數的補碼為模減去該數的絕對值

如-5的補碼為:

5=256-5=251=1111 1011(二進位)

同樣的,臨界值-128也可以表示出來:

128=256-128=128=1000 0000(二進位)

但是正128就會溢位了,故單位元組(8位)表示的數字範圍為-128--127。

最後,我們來看一下,補碼是如何通過模的溢位捨棄操作來完成化減為加的!

1 0000 1011將溢位位捨去,得0000 1011(二進位)=11。

7樓:做而論道

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

必須掌握的是「數值與補碼」的轉換。

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

所以,它們,都沒有任何用處,懂不懂,並沒有什麼關係。

搞懂補碼,並不難。補碼的**,可以說是日常所見。

之所以難懂,就是被哪些數學不好的老外,給誤導了。

你看2 位 10 進位(0~99),計數週期是:10^2 = 100。算式:

25 + 99 = 一百) 24

如果你只取 2 位數,捨棄進位 10^2 = 100,

99 和-1 就是等效的。

加法和減法運算,也是等效的。

換算公式: 正數 = 負數 + 週期。

得出的正數,就是「負數的補數」。

計算機,每次計算的位數,是固定的。

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

位數,限定了之後,負數就可以用補碼(正數)代替。減法運算,也就消失了。

計算機,僅用乙個加法器,就能走遍天下。

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

計數週期是 2^8 = 256。

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

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

計算公式:

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

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

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

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

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

原碼反碼取反加一符號位不變。。。

腦子不好用的老外,當然就要這麼做了。

現實中我不喜歡和別人說話,特別是和女生說話時,總是她說一句我

自然就好,緣分來自自然,不是強求,你裝著去搭訕,也不自然,雖然男人要臉皮厚,但也要有希望的情況下,主動伸手,別忘了這一點,你在把她想象的不錯的時候,她同樣有缺點。不要過於執著,淡定。給你介紹一本書名叫,搭善聖經,一天看完,馬上試演,要有自信膽放大一點,一切搞定 我不知道你是不是有點自卑,才會這樣,你...

我和男友談了4年了,感情很好,他媽讓我看不懂,一直那我和他嫂子對比

我和你們家是一樣的,我婆婆在我面前說我弟媳婦多麼好,會過日子,我花錢大手,不會過日子,我很生氣,開始和他爭吵,外人還說你不懂事,老公也不看好你,說就讓他說,你就裝沒聽見,在不喜歡聽就站起來走人,不要和她爭吵,說什麼都裝糊塗,如果你以後是和他媽生活麼你就別結了,如果是和他生活麼,你自己想想,其實也很正...

今天在遊戲裡和歪果仁聊天,可是我看不懂他們的語言,哪位能告訴我這是什麼語言嗎

看他id就知道顯然說的韓語 ikkeh ikkeh kimovhi senpai 有點像一庫一庫kimoji?今天在遊戲裡和歪果仁聊天,可是我看不懂他們的語言,哪位能告訴我是什麼語言嗎?大多都是英語,你在裡面發英文他們應該就會回你 國際版的網路遊戲裡,很多外國人,他們說的是什麼語言?就像國內的網遊一...