8位能表示的數的範圍是 128 127還是0 256啊?這兩

2021-04-18 07:09:50 字數 3328 閱讀 3980

1樓:阿隹

無符號和有符號的區別啊 有符號最高位是符號位 當正負 。 剩下7位啊 你算算就懂了 無符號就8位的 0——2的8次方 就是256 . 請採納

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位二進位制補碼是和8位二進位制碼有什麼區別,什麼叫8位二進位制補碼能表示的整數範圍是-128到127?

4樓:匿名使用者

8位二進位制碼是指用8位二進位制來表示的任何一種編碼的統稱,而8位二進位制補碼是8位二進位制碼中的一種編碼方式。

8位二進位制補碼是採用最高位來表示符號,低7位來表示數值大小的一種編碼。8位二進位制碼有256種狀態,可以表示256個數。如果表示範圍是-127~+127的話,那就會存在兩個0,就是+0和-0。

而實際上,0是沒有正負的,不需要有兩個0。因此,就用+0(00000000)來表示0,而用-0(10000000)來表示-128,因為10000000=128,而恰好它的最高位即符號位=1表示負數。

5樓:匿名使用者

二進位制補碼應該是位權吧。就像八進位制那樣。

為什麼8位二進位制數表示的範圍是-128到127(有符號型資料),我不懂為什麼是-128

6樓:做而論道

八位二進位制數,一共有 256 種編碼。

用一半(128個),表示負數,用另一半(也是128個),表示零和正數。

顯然,128個負數,是:-1~-128;

零和正數,也是128個,即:0~+127。

難道,還能有別的、比這更好分配方法嗎?

7樓:匿名使用者

最高位符號位 2^(-7)

在一個8位二進位制的機器中,補碼錶示數的範圍是-128到+127.為什麼是+127呢,我算的是+128,求解

8樓:竭梓維平培

數值有正負之分,計算機就用一個數的最高位存放符號(0為正,1為負).這就是機器數的原碼了.假設機器能處理的位數為8.即字長為1byte,原碼能表示數值的範圍為

(-127~-0

+0~127)共256個.

?有了數值的表示方法就可以對數進行算術運算.但是很快就發現用帶符號位的原碼進行乘除運算時結果正確,而在加減運算的時候就出現了問題,如下:

假設字長為8bits(1

)?10-?(1

)10?=?(1

)10?+(-1

)10?=?(0

)10(00000001)原?+

(10000001)原?=

(10000010)原?=(-2

)?顯然不正確.

?因為在兩個整數的加法運算中是沒有問題的,於是就發現問題出現在帶符號位的負數身上,對除符號位外的其餘各位逐位取反就產生了反碼.反碼的取值空間和原碼相同且一一對應.

下面是反碼的減法運算:?(1

)10?-?(1

)?10=?(1

)?10+(-1

)?10=?(0

)10?(00000001)?反+

(11111110)反?=?

(11111111)反?=?(-0

)?有問題.(1

)10?-?

(2)10?=?(1

)10?+(-2

)10?=

?(-1

)10(00000001)?反+

(11111101)反?=?

(11111110)反?=?(-1

)?正確

問題出現在(+0)和(-0)上,在人們的計算概念中零是沒有正負之分的.(印度人首先將零作為標記並放入運算之中,包含有零號的印度數學和十進位制計數對人類文明的貢獻極大).

於是就引入了補碼概念.

負數的補碼就是對反碼加一,而正數不變,正數的原碼反碼補碼是一樣的.在補碼中用(-128)代替了(-0),所以補碼的表示範圍為:

(-128~0~127)共256個.

注意:(-128)沒有相對應的原碼和反碼,

(-128)

=(10000000)

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位...

864的,8在什麼位,表示什麼,4在什麼位表示什麼

864這個數中,8在百位,表示8個100 6在十位,表示6個10 4在個位,表示4個1 4 8中的4在什麼位上,表示什麼個什麼,8在什麼位上,表示什麼個什麼 4 8中的4在 個 位上,表示 4 個 1 8在 十分 位上,表示 8 個 0.1 在3.84中,3在什麼位上,表示什麼 8在什麼位上,表示什...

86是位數,個位上的數是表示個十位上的數是個

兩 6 6 1 8 8 10 你好 86是一個 兩 位數,個位上的數是 6 表示 6 個 一 十位上的數是 8 個 十 兩位數,6,6個1,8個10 兩位數 個位上是6 表示6個1 十位上的數是8個10 86是一個 兩 位數,個位上的數是 6 表示 6 個 一 十位上的數是 8 表示8個 十 兩位 ...