1樓:匿名使用者
因為機器中負數使用補碼錶示的
所以正負數表示是不對稱得,你可以研究下機器碼最小:10000000 這裡不是-0,而是-(2的7次)最大:01111111 (2的7次-1)這是由於負數採用補碼錶示
11111111 -1
11111110 -2
...........
10000001 -127
10000000 -128
因為10000000 + 1 = 10000001所以10000000表示-128而不是-0 (方便計算,如果是-0還需要進行轉換)
2樓:匿名使用者
關於補碼:
a.最高位是符號位:
b.正數就是原碼
c.負數就是對應原碼取反再加1,符號位不變1-00000001
2-00000010
-1:原碼:
10000001
取反:(符號位不變)
11111110
加1:11111111
-2:原碼:
10000010
取反:(符號位不變)
11111101
加1:11111110
快算:1)取絕對值原碼
2)從右往左看保留第一個1及右邊的0,將1之前的所有位取反求-127補碼:
1)01111111(127原碼)
2)10000001
求-64補碼:
1)01000000(64原碼)
2)11000000
--------------------------------最小:10000000 這裡不是-0,而是-(2的7次)最大:01111111 (2的7次-1)這是由於負數採用補碼錶示
11111111 -1
11111110 -2
...........
10000001 -127
10000000 -128
因為10000000 + 1 = 10000001所以10000000表示-128而不是-0 (方便計算,如果是-0還需要進行轉換)
八位二進位制有符號數能表示的範圍是負2的七次方到2的七次減一,負2的七
3樓:天使財經顧問
2^10=1024,可以表示的範圍是0~1023。7位二進位制補碼可以表示的範圍是-64~+63,所以最小的數是-64。數在計算機中被表示成二進位制編碼,常用的有二進位制補碼、二進位制原碼等等。
4樓:匿名使用者
有符號最高位為符號位所以是2的7次方,11111111表示的是-128=-2^7至於減一是有個正0和負0。
帶符號的8位2進位制數為什麼最小是-128?
5樓:匿名使用者
+0的補碼就是其原碼,也就是說是0000 0000而已(對於8位來說)。
-0的補碼是其反碼加1,其反碼是1111 1111,當然,其反碼加1後就是溢位一個進位後,仍然是0000 0000。
所以0和-0的補碼都是0000 0000
根據補碼原則,0000 0000表示0,而1000 0000卻不能表示-0,所以根據原則可知,-1000 0000表示的是-128。
這就是為什麼8位帶符號數的範圍是-128~127之間了。
其實就是1000 0000表示誰呢,誰也表示不了,那就用來表示-128吧,所以8位2進位制數最小-128。
6樓:高金山
樓上的說(估計是copy過來的),這麼多,我估計樓主也不明白!
我給你簡單講一下吧:
7位2進位制數000 0000的值為0,那麼,它前面加上0,還表示0吧?
那好,如果它前面加上1呢,仍然表示0?這不是重複了麼?
一個0,怎麼用兩個值來表示呢?
所以1000 0000就表示-128啦
7樓:匿名使用者
1、在計算機系統中,數值一律用補碼來表示(儲存)。
主要原因:使用補碼,可以將符號位和其它位統一處理;同時,減法也可按加法來處理。另外,兩個用補
碼錶示的數相加時,如果最高位(符號位)有進位,則進位被捨棄。
2、補碼與原碼的轉換過程幾乎是相同的。
數值的補碼錶示也分兩種情況:
(1)正數的補碼:與原碼相同。
例如,+9的補碼是00001001。
(2)負數的補碼:符號位為1,其餘位為該數絕對值的原碼按位取反;然後整個數加1。
例如,-7的補碼:因為是負數,則符號位為「1」,整個為10000111;其餘7位為-7的絕對值+7的原碼
0000111按位取反為1111000;再加1,所以-7的補碼是11111001。
已知一個數的補碼,求原碼的操作分兩種情況:
(1)如果補碼的符號位為「0」,表示是一個正數,所以補碼就是該數的原碼。
(2)如果補碼的符號位為「1」,表示是一個負數,求原碼的操作可以是:符號位為1,其餘各位取
反,然後再整個數加1。
例如,已知一個補碼為11111001,則原碼是10000111(-7):因為符號位為「1」,表示是一個負
數,所以該位不變,仍為「1」;其餘7位1111001取反後為0000110;再加1,所以是10000111。
在「閒扯原碼、反碼、補碼」檔案中,沒有提到一個很重要的概念「模」。我在這裡稍微介紹一下「模」
的概念:
「模」是指一個計量系統的計數範圍。如時鐘等。計算機也可以看成一個計量機器,它也有一個計量範
圍,即都存在一個「模」。例如:
時鐘的計量範圍是0~11,模=12。
表示n位的計算機計量範圍是0~2(n)-1,模=2(n)。【注:n表示指數】
「模」實質上是計量器產生「溢位」的量,它的值在計量器上表示不出來,計量器上只能表示出模的
餘數。任何有模的計量器,均可化減法為加法運算。
例如: 假設當前時針指向10點,而準確時間是6點,調整時間可有以下兩種撥法:
一種是倒撥4小時,即:10-4=6
另一種是順撥8小時:10+8=12+6=6
在以12模的系統中,加8和減4效果是一樣的,因此凡是減4運算,都可以用加8來代替。
對「模」而言,8和4互為補數。實際上以12模的系統中,11和1,10和2,9和3,7和5,6和6都有這個特
性。共同的特點是兩者相加等於模。
對於計算機,其概念和方法完全一樣。n位計算機,設n=8, 所能表示的最大數是11111111,若再
加1稱為100000000(9位),但因只有8位,最高位1自然丟失。又回了00000000,所以8位二進位制系統的
模為2(8)。 在這樣的系統中減法問題也可以化成加法問題,只需把減數用相應的補數表示就可以
了。把補數用到計算機對數的處理上,就是補碼。
另外兩個概念
一的補碼(one's complement) 指的是正數=原碼,負數=反碼
而二的補碼(two's complement) 指的就是通常所指的補碼。
這裡補充補碼的代數解釋:
任何一個數都可以表示為-a=2^(n-1)-2^(n-1)-a;
這個假設a為正數,那麼-a就是負數。而根據二進位制轉十進位制數的方法,我們可以把a表示為:a=k0*2^0+k1*2^1+k2*2^2+……+k(n-2)*2^(n-2)
這裡k0,k1,k2,k(n-2)是1或者0,而且這裡設a的二進位制位數為n位,即其模為2^(n-1),而2^(n-1)其二項是:1+2^0+2^1+2^2+……+2^(n-2),而式子:-a=2^(n-1)-2^(n-1)-a中,2^(n-1)-a代入a=k0*2^0+k1*2^1+k2*2^2+……+k(n-2)*2^(n-2)和2^(n-1)=1+2^0+2^1+2^2+……+2^(n-2)兩式,2^(n-1)-a=(1-k(n-2))*2^(n-2)+(1-k(n-3))*2^(n-3)+……+(1-k2)*2^2+(1-k1)*2^1+(1-k0)*2^0+1,而這步轉化正是取反再加1的規則的代數原理所在。
因為這裡k0,k1,k2,k3……不是0就是1,所以1-k0,1-k1,1-k2的運算就是二進位制下的取反,而為什麼要加1,追溯起來就是2^(n-1)的二項式最後還有一項1的緣故。而-a=2^(n-1)-2^(n-1)-a中,還有-2^(n-1)這項未解釋,這項就是補碼裡首位的1,首位1在轉化為十進位制時要乘上2^(n-1),這正是n位二進位制的模。
不能貼公式,所以看起來很麻煩,如果寫成代數式子看起來是很方便的。
注:n位二進位制,最高位為符號位,因此表示的數值範圍-2^(n-1) ——2^(n-1) -1,所以模為2^(n-1)。上面提到的8位二進位制模為2^8是因為最高位非符號位,表示的數值範圍為0——2^8-1。
8樓:匿名使用者
樓上得 得補充說明下
2進位制正負 計算機硬體得判斷是用補碼
這個補碼是為了方便計算
至於怎麼用 你不需要明白,就不做解釋了
這個取補
給你說明下
010101==21是個整數吧
他的負數就是他的補碼
就是全部取反(能明白嗎? 上面那個就變成101010)然後在+1
但是因為同時出現1000000 和0000000兩個0 所以計算機認為1000000是-128得反補碼 也就是樓上得那個意思
我就是給樓上補充下呵呵
這個補碼
要不怕你看不懂
用8位二進位制的補碼錶示帶符號的整數,所能表示的範圍是多少?
9樓:丫丫的蘿莉控
c 由補碼定義可知,當數字大於等於0時,補碼正數表示為0≤x≤2∧(n-1)-1,這道題中n=8,所以正數部分是0≤x≤127 補碼負數表示 -(2∧(n-1)-1)≤x<0 n=8 帶進去得到 -127 ≤x<0 所以得到 -127 ≤x≤127
用8位2進位制補碼錶示帶符號的十進位制整數的範圍是
10樓:匿名使用者
用8位2進位制補碼錶示帶符號的十進位制整數的範圍是-128到127。
8位2進位制帶符號的數,一共可以表示2^8(256)個數,第一位為符號位,由於符號位0代表正數,1代表負數,所以最小的數為10000000(-128),最大的數為01111111(127)。
這裡解釋一下,最小數為什麼不是11111111,由於規定0的補碼唯一,是00000000,所以8位二進位制數可以表示256個數(並非正0和負0一樣所得出的255個),也就是說10000000表示的不是0,而是-128,它也就是最小的數而並非11111111(-127)。
擴充套件資料
原碼:在數值前直接加符號位的表示方法。
反碼:正數的反碼與原碼相同。負數的反碼,符號位為「1」,數值部分按位取反。例如原碼1110的反碼為1001。
補碼:正數的補碼和原碼相同。負數的補碼則是符號位為「1」,數值部分按位取反後再在末位加1。也就是反碼加1。例如原碼1110的補碼為1010。
帶符號的8位二進位制整數,若採用原碼錶示,其數值範圍求詳解要不看不懂啊
原碼通常一般用8位二進位制數表示帶符號的真值 我們生活中用的數,即非機器數 好像是因為早期線路都是每次輸送1位元組 但在宣告的情況下原 反 補 移碼都有其他位數的情況數值定義 真值0 10000000 範圍 x表示真值,x 表示帶符號的真值,x 原表示其原碼 反 補 移碼類同 n表示真值的整數位數 ...
二進位制用於什麼,什麼是二進位制
什麼是二進位制 二進位制是計算技術中廣泛採用的一種數制。二進位制數字是用0和1兩個數碼來表示的數。它的基數為2,進位規則是 逢二進一 借位規則是 借一當二 由18世紀德國數理哲學大師萊布尼茲發現。當前的計算機系統使用的基本上是二進位制系統。20世紀被稱作第三次科技革命的重要標誌之一的計算機的發明與應用,其運...
8位二進位制原碼補碼反碼的表示範圍各是多少怎麼算的
8位二進位制原碼的表示範圍 127 1278位二進位制反碼的表示範圍 127 1278位二進位制補碼的表示範圍 128 127n位二進位制原碼和n位二進位制反碼 2 n 1 1 2 n 1 1 n位二進位制補碼 2 n 1 2 n 1 1。為什麼規定範圍 128到127?而不是規定其他範圍?因為8位...