1樓:匿名使用者
第1位是符號位,後七位是數值位
8位二進位制 補碼表示數最大是(01111111)2=(+127)10
8位二進位制表示數的範圍為什麼是-128~127
2樓:一面素然靜吾心
計算機對有符號數(包括浮點數)的表示有三種方法:原碼、反碼和補碼
8位原碼能夠表示數的範圍是 -127~127
8位反碼能夠表示數的範圍是 -127~127
8位補碼能夠表示數的範圍是 -128~127
既然範圍是-128~127,那肯定是用補碼表示的。
計算機沒有你想象的那麼聰明,能夠自覺的對正數和負數進行區分和識別,所以我們人類就給他們制定了一系列規則:
我們把最高位規定為符號位,1為負,0為正;
1000 0000——1111 1111表示-128到-1, 0000 0000——0111 1111表示0-127;
例如:已知補碼1111 1111——>原碼1000 0001,反碼1111 1110;
負數補碼——>>原碼計算規則:
看到最高位為1,乙個負數,
把符號位去掉,剩下0111 1111,然後減1得到0111 1110,再取反得到原碼1000 0001;
負數補碼——>>反碼計算規則:
看到最高位為1,乙個負數,反碼=補碼-1,所以得到反碼 1111 1110;
若為0表示正數,補碼=原碼=反碼,算都不用算的;
所以說補碼就是二進位制裡表示負數的一種方法,對正數求原碼、反碼、補碼沒什麼意義;
正數的原碼反碼補碼是一樣的.
補碼的表示範圍為:
(-128~0~127)共256個.
注意: (-128)沒有相對應的原碼和反碼。-128——>(1000 0000)
摘自
3樓:淘氣的汪星人
其實主要就是-128怎麼來的不明白
在有符號二進位制中,0有兩種表示方法,00000000(+0)、10000000(-0)
但在數學中0是不分正負的,所以用+0來表示0,這時候-0就沒有用了
多出來的不要浪費,所以人為規定他來表示-128,這是人為規定的,正常方式計算不出來
為什麼要這樣規定呢,也是有一定原因的
8位二進位制最多表示127,再加一就溢位,成為了0,也就是127+1=0
127+1正常運算應該是128,所以就可以理解為128=0
這裡就像是鐘錶一樣,晚上12點也是0點,也就是12=0
因為00000000(+0)用來表示0了,所以10000000(-0)就可以用來表示-128(人為規定)
為什麼8位二進位制的補碼取值範圍是-128~127
4樓:匿名使用者
八位二進位制正數的補碼範圍是0000 0000 ~ 0111 1111 即0 ~ 127,負數的補碼範圍是正數的原碼0000 0000 ~ 0111 1111 取反加一(也可以理解為負數1000 0000 ~ 1111 1111化為反碼末尾再加一)。
所以得到 1 0000 0000 ~ 1000 0001,1000 0001作為補碼,其原碼是1111 1111(-127),依次往前推,可得到-1的補碼為1111 1111,那麼補碼0000 0000的原碼是1000 0000符號位同時也可以看做數字位即表示-128,這也解釋了為什麼127(0111 1111)+1(0000 0001)=-128(1000 0000)。
在計算機中資料用補碼表示,利用補碼統一了符號位與數值位的運算,同時解決了+0、-0問題,將空出來的二進位制原碼1000 0000表示為-128,這也符合自身邏輯意義的完整性。因此八位二進位製數表示範圍為-128~+127。
拓展資料:補碼的特性:
1、乙個負整數(或原碼)與其補數(或補碼)相加,和為模。
2、對乙個整數的補碼再求補碼,等於該整數自身。
3、補碼的正零與負零表示方法相同。
5樓:echo丶
首先八位二進位製數 0000 0000 ~1111 1111,一共可以表示 2^8=256 位數,如果表示無符號整數可以表示0~255。計算方法就是二進位制與十進位制之間的轉換。
如果想要表示有符號整數,就要將最前面乙個二進位制位作為符號位,即0代表正數,1代表負數,後面7位為數值域,這就是原碼定義。這樣在現實生活中完全沒有問題,但在計算機中就出現了問題。
數的表示:
在原碼中,0的表示有兩種(+0)0000 0000、(-0)1000 0000,這樣就產生了編碼對映的不唯一性,在計算機上就要區分辨別。然而+0、-0卻沒有什麼現實意義。
數的運算:
為了解決上述數的表示問題,我們可以強制把轉換後的10000000強制認定為-128。但這又出現了乙個新的問題就是數的運算。數學上,1+(-1)=0,而在二進位制中00000001+10000001=10000010,換算成十進位制為-2。
顯然出錯了。所以原碼的符號位不能直接參與運算,必須和其他位分開,這就增加了硬體的開銷和複雜性。
這個時候就要引入補碼,補碼表示法規定:正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。反碼定義為:正數的反碼與其原碼相同;負數的反碼是對其原碼逐位取反,但符號位除外。
但為什麼要引入補碼呢?
以及負數補碼定義為什麼是相對應的正數原碼取反加一?
一、為什麼要引入補碼?
先解決第乙個問題,引入補碼是為了解決計算機中數的表示和數的運算問題,使用補碼,可以將符號位和數值域統一處理,即引用了模運算在數理上對符號位的自動處理,利用模的自動丟棄實現了符號位的自然處理,僅僅通過編碼的改變就可以在不更改機器物理架構的基礎上完成的預期的要求。
二、什麼是「模」?
模的概念可以幫助理解補數和補碼。
「模」是指乙個計量系統的計數範圍。如時鐘等。計算機也可以看成乙個計量機器,它也有乙個計量範圍,即都存在乙個「模」。
例如: 時鐘的計量範圍是0~11,模=12。表示n位的計算機計量範圍是0~2^(n)-1,模=2^(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。
在這樣的系統中減法問題也可以化成加法問題,只需把減數用相應的補數表示就可以了。把補數用到計算機對數的處理上,就是補碼。
對乙個正數的原碼取反加一,得到這個正數對應負數的補碼。例如~6=-7,而且加一之後會多出乙個八進位制補碼1000 0000,而這個補碼就對應著原碼1000 0000,數字位同時當做符號位即-128。
根據以上內容我們就可以來解釋八位二進位製數的表示範圍:
八位二進位制正數的補碼範圍是0000 0000 ~ 0111 1111 即0 ~ 127,負數的補碼範圍是正數的原碼0000 0000 ~ 0111 1111 取反加一(也可以理解為負數1000 0000 ~ 1111 1111化為反碼末尾再加一);
所以得到 1 0000 0000 ~ 1000 0001,1000 0001作為補碼,其原碼是1111 1111(-127),依次往前推,可得到-1的補碼為1111 1111,那麼補碼0000 0000的原碼是1000 0000符號位同時也可以看做數字位即表示-128,這也解釋了為什麼127(0111 1111)+1(0000 0001)=-128(1000 0000)。
總結:
在計算機中資料用補碼表示,利用補碼統一了符號位與數值位的運算,同時解決了+0、-0問題,將空出來的二進位制原碼1000 0000表示為-128,這也符合自身邏輯意義的完整性。因此八位二進位製數表示範圍為-128~+127。
補充資料:
在計算機系統中,數值一律用補碼來表示和儲存。原因在於,使用補碼,可以將符號位和數值域統一處理;同時,加法和減法也可以統一處理。
原碼(true form)是一種計算機中對數字的二進位制定點表示方法。原碼表示法在數值前面增加了一位符號位(即最高位為符號位):正數該位為0,負數該位為1(0有兩種表示:
+0和-0),其餘位表示數值的大小。
6樓:塔罵德
8位二進位制的範圍就是-128~127,也就是-2^7~2^7-1,所以反碼也是這樣。
計算機對有符號數(包括浮點數)的表示有三種方法:原碼、反碼和補碼8位原碼能夠表示數的範圍是 -127~1278位反碼能夠表示數的範圍是 -127~1278位補碼能夠表示數的範圍是 -128~127既然範圍是-128~127,那肯定是用補碼表示的。
7樓:沙里波特
在補碼中,負數
和非負數,是一樣多的。
字長 8 位,共有 256 組**。
用其中的一半(128 個),表示負數,就是-128~-1。
用其中的一半(128 個),表示非負數,即 0~+127。
綜合,就是-128 ~ +127。
8樓:匿名使用者
對8位二進位制的博馬取值範圍是128~127這個問題呢,我還正在討論中,還沒有完全正確的結果。
9樓:星空月刃
0到127 二進位制為 00000000到01111111
-128到-1 二進位制為10000000到11111111
10樓:蘇北第一皮
看這個就好了,講的很全面很清楚
11樓:匿名使用者
這個是有符號的,八位的最高位表示符號位,1為負,0為正
所以範圍是:1111 1111 ——0111 1111
8位二進位制補碼所能表示的十進位制整數範圍是多少至
計算機儲存的所有整型數值都是補碼。所以補碼一樣分有符號和無符號型別。對於無符號的 補碼就是原始碼,8位範圍是0 255對於有符號的,區分正負,範圍是 128 127 10000000 二進位制 128 十進位制 11111111 二進位制 255 十進位制 所以 8位二進位制補碼所能表示的十進位制整...
二進位制補碼怎麼算,二進位制補碼怎麼計算的
一分鐘了解計算機與二進位制 1 在計算機系統中,數值一律用補碼來表示 儲存 主要原因 使用補碼,可以將符號位和其它位統一處理 同時,減法也可按加法來處理。另外,兩個用補 碼表示的數相加時,如果最高位 符號位 有進製,則進製被捨棄。2 補碼與原碼的轉換過程幾乎是相同的。數值的補碼表示也分兩種情況 1 ...
長度為位元組的二進位制整數,若採用補碼表示,且由1和
113,用5個1和3個0組成的二進位制補碼數,可表示的最小十進位製數為 113,其對應的二進位製數為 10001111b。8位無符號二進位製數能夠表示 0 255 8位有符號二進位製數能夠表示 128 127。計算機中的符號數有三種表示方法,即原碼 反碼和補碼。三種表示方法均有符號位和數值位兩部分,...