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?今天在遊戲裡和歪果仁聊天,可是我看不懂他們的語言,哪位能告訴我是什麼語言嗎?大多都是英語,你在裡面發英文他們應該就會回你 國際版的網路遊戲裡,很多外國人,他們說的是什麼語言?就像國內的網遊一...