1樓:聽不清啊
補碼加補碼得到補碼。
將補碼變為原碼,只要重複「由原碼求補碼」的運算就行了。所以,仍是「求反碼加1」。
例:5+(-1)
0000 0100 即+4,正數的補碼與原碼相同-5+1:
1111 1100 (和的補碼,視作「原碼」)1000 0011 (求反碼)
1000 0100 (加1,即-4的原碼)
原碼求補碼是取反加一,為什麼補碼求原碼也是取反加一?
2樓:匿名使用者
按原碼變補碼的規則,補碼變原碼應該是「減1取反」,可是對於二進位制,「減1取反」和「取反加1」的效果是一樣的,所以補碼的補碼就是原碼;
原碼(true form)是一種計算機中對數字的二進位制定點表示方法。原碼表示法在數值前面增加了一位符號位(即最高位為符號位):正數該位為0,負數該位為1(0有兩種表示:
+0和-0),其餘位表示數值的大小。
計算機中的符號數有三種表示方法,即原碼、反碼和補碼。三種表示方法均有符號位和數值位兩部分,符號位都是用0表示「正」,用1表示「負」,而數值位,三種表示方法各不相同。
3樓:沙里波特
原碼求補碼是取反加一,(對。)
補碼求原碼也是取反加一?(不全對。)
一般理解,應該是「減一取反」。
但是,對於二進位制來說,取反加。
一、減一取反,結果是相同的。為什麼?這是從實踐中,得到的經驗公式。沒有理論證明。
注意:-128 具有八位補碼,但是卻沒有原碼反碼。
所以:用-128的補碼,求-128的原碼,也是取反加一? (不對!!!
4樓:匿名使用者
負數的原碼取反加一就是補碼。
正數的原碼和補碼一樣。
-2 為1 10 補碼為 0100 10取反加一為110
2 為0 10前面是符號位,後面是二進位制值,ok?
5樓:匿名使用者
你也可以用補碼減一,再取反啊,好像結果一樣。
負數,原碼變補碼是取反加一,但補碼變原碼也是取反加一?
6樓:
是啊。我知道你的疑惑,按原碼變補碼的規則,補碼變原碼應該是「減1取反」,可是對於二進位制,「減1取反」和「取反加1」的效果是一樣的……
補碼轉換成原碼
7樓:前堯弓玉
補碼的補碼等於原碼(就是把補碼看作原碼,再來一次獎原碼轉為補碼的運算,就得到了原碼)。
例如:-4的8位。
原碼:1000
反碼:1111
補碼:1111
將現在1111
1100看作原碼,再求一次補碼:
反碼:1000
補碼:1000
0100---結果就是要求的原碼。
8樓:枚愷苑璧
補碼為原碼的反碼加1
9樓:偉岸森林
正數:原碼=反碼=補碼;負數二進位制符號位不變,其餘取反加1 ,如:
補碼:1101001
如果也用這個例子,應該是:
原碼:1010110 + 1 =1010111或者也可以用符號位不變,其餘減1取反。
10樓:匿名使用者
正數:原碼=反碼=補碼;負數二進位製取反加1 ,如:
補碼:1101001
原碼:0010110 + 1 =0010111
11樓:也許
負數 補碼減一求反=原碼。
正數 補碼=原碼。
12樓:網友
二進位制 加一再取反。
補碼運算的結果也是補碼嗎?要得到結果是不是要先轉換為原碼?
13樓:手機使用者
拿"編譯型語言"來說:
1)源**中的"-1"是以字元形式儲存的, 它的值並不是-1;
2)程式要想在cpu上執行,必須要將源**轉換為可執行的二進位制碼;
3)將源**變成可執行的二進位制碼的過程就是"編譯";
4)編譯的時候,源程式中的所有負數會轉換為cpu可運算的表示方法,比如補碼。
計算機裡二進位制補碼為什麼加1?
14樓:東方小廚師
簡單地說,補碼就是反碼加1。
計算機中為什麼要使用補碼呢?
主要原因:1、使用補碼,可以將符號位和其它位統一處理;同時,減法也可按加法來處理。另外,兩個用補 碼表示的數相加時,如果最高位(符號位)有進製,則進製被捨棄。
2、補碼與原碼的轉換過程幾乎是相同的。
(1)正數的補碼。
與原碼相同。
【例1】+9的補碼是00001001。(備註:這個+9的補碼說的是用8位的2進製來表示補碼的,補碼表示方式很多,還有16位2進製補碼表示形式,以及32位2進製補碼表示形式等。)
(2)負數的補碼。
符號位為1,其餘位為該數絕對值的原碼按位取反;然後整個數加1。
同乙個數字在不同的補碼表示形式裡頭,是不同的。比方說-15的補碼,在8位2進製裡頭是11110001,然而在16位2進製補碼表示的情況下,就成了1111111111110001。在這篇補碼概述裡頭涉及的補碼轉換預設了把乙個數轉換成8位2進製的補碼形式,每一種補碼表示形式都只能表示有限的數字。
【例2】求-7的補碼。
因為給定數是負數,則符號位為「1」。
後七位:+7的原碼(0000111)→按位取反(1111000)→加1(1111001)
所以-7的補碼是11111001。
已知乙個數的補碼,求原碼的操作分兩種情況:
(1)如果補碼的符號位為「0」,表示是乙個正數,其原碼就是補碼。
(2)如果補碼的符號位為「1」,表示是乙個負數,那麼求給定的這個補碼的補碼就是要求的原碼。
另一種方法求負數的補碼如下:
例如:求-15的補碼。
第一步:+15:00001111
第二步:逐位取反(1變成0,0變成1),然後在末尾加1。
再舉乙個例子驗證下:求-64的補碼。
【例3】已知乙個補碼為11111001,則原碼是10000111(-7)。
因為符號位為「1」,表示是乙個負數,所以該位不變,仍為「1」。
其餘七位1111001取反後為0000110;
再加1,所以是10000111。
15樓:夷竹青別書
麼原碼、反碼、補碼的概念,只有絕對值。
對於帶符號數,才會有採用什麼碼型來表示的問題。
補碼如何變成原碼
16樓:炸毛什造
已知乙個數的補碼,求原碼的操作分兩種情況:
(1)如果補碼的符號位為「0」,表示是乙個正數,所以補碼就是該數的原碼。
(2)如果補碼的符號位為「1」,表示是乙個負數,求原碼的操作可以是:符號位為1,其餘各位取反,然後再整個數加1。
例如,已知乙個補碼為11111001,則原碼是10000111(-7):因為符號位為「1」,表示是乙個負數,所以該位不變,仍為 「1」;其餘7位1111001取反後為0000110;再加1,所以是10000111。
17樓:狼道刀
以補碼10010110為例,有兩種計算方法求原碼:
演算法1:補碼=原碼取反再加1的逆運算。
10010110是補碼,應先減去1變為反碼,得10010101;
由反碼取得原始碼即除符號位外其他為按位取反,得11101010,即十進位製數的-106。
演算法2:負數補碼速演算法,由最低位(右)向高位(左)查詢到第乙個1與符號位之間的所有數字按位取反的逆運算。
10010110是補碼,符號位與最後乙個1之間的所有數字按位取反,得11101010
18樓:風若遠去何人留
對於正數和負數,補碼規則不同,所以求原碼方式也有所不同。無符號數與正數的方法相同。
1 對於最高位為0的有符號數,或無符號數,補碼就是原碼本身。如0111 1100 既是補碼,同時也就是原碼。
2 對於最高位為1的有符號數,其表示的是負數。原碼為按位取反,末位加一。如。
補碼:1100 0111
按位取反後結果為:0011 1000
加一後得到: 0011 1001
於是其原碼就是-0011 1001
19樓:匿名使用者
1:如果補碼是正數的話,即符號位(一般是最高位) 為0的話,該補碼即原碼。
2:如果補碼是負數的話,即符號位是1的話,在有兩種方式將其變為原碼。a:
在對該補碼求補,所得的補碼即為原補碼的原碼 b:符號位不變,將補碼-1,再將各位取反,得到的反碼即為原碼。
20樓:沙里波特
正負數,在計算機中,是用補碼儲存的。
計算機中,並沒有原碼反碼。
看到補碼,求出它代表的數字,即可。
變成原碼,則是毫無意義的。
21樓:藍雨
補碼的補碼就是原碼!
帶符號數中只有負數的原碼反碼和補碼是不一樣的,正數的這些都是一樣的,涉及碼制轉換!
原碼求補碼是取反加1
補碼求原碼還是是取反加1(符號位除外)
22樓:匿名使用者
負數用0減去補碼得到原碼,正數不變。
正負數的原碼,補碼,反碼求法,補碼 原碼 反碼怎麼運算的啊 詳細一點
正數的原碼,反碼,補碼都是一樣的。負數的原碼你應該知道的,就是帶符號位的二進位製數。反碼,符號位不變為1,其他每位二進位製數取反,1變0,0變1.補碼就是在反碼的基礎上,符號位不變,最低位加1,得到補碼。這裡有個簡單的求補碼的方法,從原碼的最低位向最高位看去,遇到第乙個1前,保持不變,第乙個1前面的...
原碼 反碼 補碼的介紹,原碼 反碼 補碼的基本概念
在計算機系統中,數值,一律採用補碼表示和儲存。原碼和反碼,都是不存在的。補碼,是乙個 代替負數 的正數。使用了補碼,計算機中就沒有負數了,同時,也就沒有減法運算了。因此,使用補碼,就能簡化運算,從而就簡化了硬體。補碼 正數 怎麼就能代替負數呢?用十進位制來說明,其原理就十分簡單。用 2 位 10 進...
原碼 反碼 補碼 按位取反( )
計算機中,並沒有原碼和反碼,只是使用補碼,代表正負數。使用補碼的意義 可以把減法或負數,轉換為加法運算。從而簡化計算機的硬體。比如鐘錶,時針轉一圈,週期是 12 小時。倒撥 3 小時,可以用正撥 9 小時代替。9,就稱為 3 的補數。計算方法 12 3 9。對於分針,倒撥 x 分,就可以用正撥 60...