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個 十 兩位 ...