1樓:圭若谷紅燕
你的說法沒有錯,但不嚴密。應當這樣說,所有的整數都有原碼、反碼、補碼,只是正數的原碼、反碼、補碼與原碼相同。而無符號整數是按正數對待的,所以它的原碼、鉛扮反碼、補碼也與原碼相同。
這裡說的反碼與通常的按位取反不完全是一回事,這裡的反碼只對負數而言且高位的1是不變的,而通常說的按位取反則是包括最高位的。不知道當初的「理論家」為什麼要搞出個反碼、補碼來,搞得初學者非常糾結;其實這裡說的反碼數改是為求補碼服務的,而補碼就是負整數在計譁閥糕合蕹骨革攤宮揩算機中的表示方法,為什麼當初不搞成正整數與負整數的二進位表示不一樣:3是011,而-3是101不就薯激判完了嘛?
2樓:天文和地理
0和-0都是乙個。
看看補碼的原理就是了。
好像是絕銷穗困對值按位取反+1.
128在8位補碼是無法表示的族喊,-128才能表示。
1000 0000是-128的補碼,0的虧念補碼就是0。
3樓:網友
實際上補碼這個概念,適用天任何進碼檔制,困為其畢模返本質的定義為,若乙個數x與另乙個數y相加正好得到x或y的最小進位(注意要保持x或y的長度相同),則稱x 或y互補,這個最小進位的數就稱為「模」。例如十進位數1和9,其模是10,而09和91的模就是100,這樣你就應該手飢看到模要比其數多一位,那麼128+128=256,正好產生了乙個進位。
4樓:網友
暈,128在8位補碼是無銷襲法表示的,-128才氏鬥旦能表示。殲擾。
1000 0000是-128的補碼,0的補碼就是0。
5樓:房恩巨集
0和-0都是乙個。
看看補碼的原理就是了。
好像是絕對值按位取反+1.
為什麼-8的補碼用四位二進位人為規定表示為1000?懂得告訴我。。不懂就
6樓:做而論道
用四位補碼,可表示 16 個數值。
數值的範圍,是:-8 ~ 7。
8 的補碼,並不是人為規定的。
因為,-8 沒有四位的原碼和反碼。-8 的補碼,你用「取反加一」是求不出來的。
所以,你才誤解為「人為規定」。沒有原碼和亂遲友反碼,補碼,怎麼求呢?
你往下看:數值 0,補碼就是:0000。
-1 的補碼,就是:0000-1 = 1111。
其它的補碼,你就慢慢減吧。。。-8 的補碼,就是 1000。
同譁槐樣的道理,-128 的八位補碼,你也得這麼求。
7樓:初音
計算機的硬體,只有加法器。負數、減法,都必須用加法來完成。你看十進位:
24 + 99 = 一百) 23
捨棄進位,+99 可以當做-1 進行運算。
99 就是-旦橘巧1 的補數。
補數(補碼),就是乙個「代替負數進行運算的正數」。
對於 2 位 10 進位數,求補數的公式:
補數=負數+10^2。
計算機中,用二進位,就稱為補碼。
對於 8 位 2 進伍答制數,求補碼的公式:
補碼=負數+2^8。
1 的補碼是:-1 + 256 = 255 = 1111 1111。
2 的補碼是:-2 + 256 = 254 = 1111 1110。
模鍵128 的補碼是:128 = 1000 0000。
如果四位二進位,-8 的補碼,就是:
8 + 2^4 = 8 = 1000(二進位)。
求補碼,不要用「原碼取反加一」。
那個方法,是無法求出-8 的補碼的。
而且,你也不能理解使用補碼的意義。
16進位80的補碼錶示十進位的真值是多少?
8樓:太平洋電腦網
80h的二進位數是:10000000,這是補碼,轉換成原碼就是:1 00000000,相當於-128。
16進位:用16作為基數的計數系統。用數字0-9和字母a-f(或其大寫a-f)表示0到15。
十六進位數轉換成十進位數。
2進位,用兩個阿拉伯數字;
8進位,用八個阿拉伯數字;
10進位,用十個阿拉伯數字:0到9。
9樓:做而論道
16進枯友老制80的補碼錶示十進位的真值是多少?
是八位補碼?
-128 的八沒公升位補碼是 1000 0000 = 80 (16進位告凱)。
真值為 -1000(十進位)的無符號數和機內二進位補碼是一樣的嗎?
10樓:聽不清啊
計算機中輸入-1000時,是以補碼的形式讀到內容中的;
如果把它分別儲存為無符號數和有符號數(機內二進位補碼。
時,它們在計算機中的內容是一樣的,但是把儲存的內容分別以無符號數和有符號數讀出來時,內容就不一樣了。
#include <
void prt1(unsigned int
a) /列印32位無符號整數。
的二進位形式。
unsigned int i;
for(i=31; i>0; i--)
printf("%d",(a&(1printf("%d",a&1);
void prt2(int a) /列印32位有符號整數(補碼)的二進位形式。
unsigned int i;
for(i=31; i>0; i--)
printf("%d",(a&(1printf("%d",a&1);
int main()
unsigned int a;
int b;
scanf("%u%d",&a,&b); 分別以無符號數和有符號整數的格式讀入乙個相同的數。
正常情況下,無符號數不能輸入負數,否則就「溢位」了。
printf("%u %d",a,b); 輸出讀到的無符號數和有符號整數。
printf("a%c=b",a==b?'=以計算機內的標準判斷這兩個數有無區別。
prt1(a); 列印32位無符號整數的二進位形式。
prt2(b); 列印32位有符號整數(補碼)的二進位形式。
return 0;
11樓:做而論道
計算機專業所說的「無符號數」,就是小學學過的「自然數」。
自然數,是沒有負數的。
那麼,「-1000 (十進位) 的無符號數
,這說法,不成立。
計算機專業所說的「帶符號數」,就是小學學過的「整數」。
整數,包括:正整數、負整數和零。
整數,在計算機中,就是以二進位補碼錶示和存放的。
在8位計算機系統中,用補碼錶示的整數(10101100)2對應的十進位數是?求詳細過程,為什麼我求
12樓:教育仁昌
在8位計算機系統中,用補碼錶示的整數(10101100)2對應的十進位數是11010011。
已知乙個數的補碼,求原碼的操作其實就是對該補碼再求補碼:
如果補碼的符號位為「0」,表示是乙個正數,其原碼就是補碼。
如果補碼的符號位為「1」,表示是乙個負數,那麼求給定的這個補碼的補碼就是要求的原碼。
已知乙個補碼為10101100,因為符號位為「1」,表示是乙個負數,所以該位不變,仍為「1」。
其餘七位0101100取反後為1010011;再加1,所以原碼是11010011。
13樓:諾諾百科
因為是補碼,所以最高位1表示是負數,負數的補碼是除符號位外,各位取反再加1,所以求原碼的過程為先減1,再各位取反(符號位不變):
一、先減1:10101100-1=10101011;
二、再取反:11010100,所以對應的十進位數是-84。
x]補 =10101100b
1 (-x]反 =10101011b
x]原 =11010100b
x = - 1010100b = - 54h = - 84d
14樓:小陽同學
因為是被碼,所以最高位1表示是負數,負數的被碼是各位取反再加1,所以求原碼的過程為先減1,再各位取反:
1、先減1:10101100-1=10101011;
2、再取反:01010100=84,所以對應的十進位數是-84;
15樓:沙裡波特
8 位的補碼 10101100,等於十進位 172。
大於 127,這個補碼就是代表了負數。
按照公式:負數的補碼=256 + 該負數=172。
那麼,該負數=負數的補碼-256=-84
負數的補碼,只有這麼乙個簡單的公式:
負數的八位補碼=256 + 該負數數、碼互相轉換時,可以使用十進位計算。
也不涉及原碼反碼,這就非常的方便。原碼反碼,都是毫無用處的,不必關心。
如果8位的機器數碼10110100,它是補碼時,表示的十進位真值是?求解詳細過程,感謝
16樓:網友
補碼的補碼即原碼。
對 1011 0100 求反,即 1100 1011,再加1得 1100 1100,即-(4+8+64)=-76
17樓:做而論道
由補碼求真值,是非常簡單的事。
你只要做【數 制 轉 換】,十進位的真值,就出來了。
既不用求「反碼原碼」,也不用想著「符號位不變」。
取反加一」或「減一取反」,都是不需要的。
已知八位補碼是
首位的 1,既代表負數,也代表-128。
其餘位,都是正數:32 + 16 + 4 = +52。
各位之和,就是真值:-128 + 52 =-76。
如果,補碼是
各位之和,就是真值:32 + 16 + 4 = +52。
二進位帶符號整數(補碼)10000000的表示的十進位是多少 要看清題目在啊
18樓:做而論道
二汪源枝進位帶符號整數(補碼)1000 0000 所表示的十進位數是多少?
是-128。常說的「取反加一」是不能解決這個問題的。
因為,在八位的原碼和反碼中,都不能表示「-128」。
必須用最簡單的換算公式,才能求出-128。
而課本上所寫的「困敏符號位原碼裂裂反碼取反加一符號位不變」,就是誠心添亂。
19樓:梓偃諑
負整數0的原碼,符號位1,其它位0 --10000000 (假定共8位,最高位是符號位)
負整數棗巧尺0的反碼,符號位不變,為1,其它位0變1,--11111111
負整數0的補碼,等於它的反碼加1 --
方寬培括號裡的1因溢位,自動丟失,成為凳高 00000000所以正整數0和負整數0的補碼相同,00000000
8位二進位制補碼所能表示的十進位制整數範圍是多少至
計算機儲存的所有整型數值都是補碼。所以補碼一樣分有符號和無符號型別。對於無符號的 補碼就是原始碼,8位範圍是0 255對於有符號的,區分正負,範圍是 128 127 10000000 二進位制 128 十進位制 11111111 二進位制 255 十進位制 所以 8位二進位制補碼所能表示的十進位制整...
FF00H表示的有符號位十進位數是多少?
h ffh這個怎麼加應該會吧?與十進位的加法差不多啊。一位一位的加。當此位加值大於之後向高位進 就你這個來講吧。先是後面的 沒有進位。再就是 通樣沒有進位,後面就是 f f仍然沒有進位, f 。估計你這個應該是不理解吧。十六進位的f是十進位的,那麼十五加二就是十七,十七大於,需要進位。 ,因此得到十...
請問表示任意兩位無符號十進位製數需要幾個二進位製數
答案顯然是c了 8位無符號二進位製數的範圍是0 2 8 1 也就是0 255,在這個範圍內的只有答案c 99為最高的十進位制號碼99 1100011 二進位制故任意兩位無符號的十進位制需要7位二進位製數!付費內容限時免費檢視 回答稍等哦 7位99 為最高的十進位制號碼 99 1100011 二進位制...