带符号的8位2进制数为什么最小是-128?

作者&投稿:张狐 (若有异议请与网页底部的电邮联系)
为什么一个八位二进制有符号的最小值是—128???~

因为8位数字中,最高位为符号位,其他七位为有效数字位,2^7=128,所以范围是-128~127

这涉及到计算机数值的补码表示,关于编码表示的相关知识可参阅:http://hi.baidu.com/sonmeika/blog/item/39723a30aa24149da9018e2b.html
如果八位二进制数用原码表示,那么00000000和10000000都表示为0,因为最高位为符号位,正零等于负零,其表示范围是[0, 255];如果用补码表示10000000就是-128,其表示范围是[-128, 127].

  +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。

  

楼上的说(估计是copy过来的),这么多,我估计楼主也不明白!

我给你简单讲一下吧:

7位2进制数000 0000的值为0,那么,它前面加上0,还表示0吧?
那好,如果它前面加上1呢,仍然表示0?这不是重复了么?
一个0,怎么用两个值来表示呢?

所以1000 0000就表示-128啦

楼上得 得补充说明下
2进制正负 计算机硬件得判断是用补码
这个补码是为了方便计算
至于怎么用 你不需要明白,就不做解释了
这个取补
给你说明下
010101==21是个整数吧
他的负数就是他的补码
就是全部取反(能明白吗? 上面那个就变成101010)
然后在+1
变成101011这就是他的补码也就是=-21

那么你看看1000000得反补码-1然后取反
01111111=1000000实际上溢出了1位
因为第一位为标志位
但是因为同时出现1000000 和0000000两个0 所以计算机认为1000000是-128得反补码 也就是楼上得那个意思
我就是给楼上补充下呵呵
这个补码
要不怕你看不懂

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。


用补码表示的带符号的八位二进制数
例如,一个用补码表示的带符号的八位二进制数为10010111。由于最高位为1,因此该数为负数。将除符号位外的其余7位按位取反得到0110100,再加1得到0110101,因此该负数的值为-5(十进制)。注意在计算机中存储带符号的八位二进制数时,需要将其存储为补码形式。因此,如果需要将一个带符号的八位二进...

到底什么是带符号的8位二进制
所谓带符号的8位二进制码,就是从8位二进制码中拿出1位作为符号位:0表示"+",1表示"-"。其余7位二进制码用于表示绝对值。通常有原码、反码、补码等编码方式。编码方式不同,表示的范围也不同。8位二进制原码和反码的表示范围是-127~+127,8位二进制补码的表示范围是-128~+127。

带符号的8位2进制数为什么最小是-128?
这就是为什么8位带符号数的范围是-128~127之间了。其实就是1000 0000表示谁呢,谁也表示不了,那就用来表示-128吧,所以8位2进制数最小-128。

8位二进制表示带符号数的范围是多少?
8位二进制所能表示的无符号整数范围为0~255;8位二进制所能表示的带符号整数范围为-128~127。无符号整数与带符号整数:一、无符号整数 无符号数(Unsigned number)是相对于有符号数而言的,指的是整个机器字长的全部二进制位均表示数值位,相当于数的绝对值。用二进制数的最高位表示符号,最高位是0...

8位带符号二进制整数可表示十进制范围
8位带符号二进制整数可表示十进制范围是-128~127。二进制数的介绍:二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。二进制数(binaries)是逢2进位的进位制,0、1是基本算符,计算机运算基础采用二...

用8位2进制补码表示带符号的十进制整数的范围是
8位2进制带符号的数,一共可以表示2^8(256)个数,第一位为符号位,由于符号位0代表正数,1代表负数,所以最小的数为10000000(-128),最大的数为01111111(127)。这里解释一下,最小数为什么不是11111111,由于规定0的补码唯一,是00000000,所以8位二进制数可以表示256个数(并非正0和负0一样所...

八位二进制数能表示的最大数及最小数各是多少?请说明一下原理
1.如果这八位二进制数是有符号的:(1.)最大数是127:是2的7次方减1,也就是127,最大数的二进制代码是01111111,由于是有符号的,所以最高位是符号位,0表示正数,其余位7个位全1表示最大数;(2.)最小的数是-128:由于负数在计算机中是以其补码形式存在。-1的补码是先求出其绝对值的二...

在计算机内部,8位带符号二进制整数可表示的十进制的最大值是
在计算机内部,8位带符号二进制整数可表示的十进制的最大值是127。二进制的“00101000”直接可以转换成16进制的“28”。字节是电脑中的基本存储单位,根据计算机字长的不同,字具有不同的位数,现代电脑的字长一般是32位的,也就是说,一个字的位数是32。字节是8位的数据单元,一个字节可以表示0-255...

求助:八位二进制数表示有符号数,为什么最大值为127而不是128?
因为八位二进制数表示有符号数时,最高位是符号位,0表示正数,1表示负数。其余7位是数码位。其最小值为0000000,即表示0,最大值为1111111,即表示127。

用8位2进制补码表示带符号的十进制整数的范围是
8位2进制带符号的数,一共可以表示2^8(256)个数,第一位为符号位,由于符号位0代表正数,1代表负数,所以最小的数为10000000(-128),最大的数为01111111(127)。这里解释一下,最小数为什么不是11111111,由于规定0的补码唯一,是00000000,所以8位二进制数可以表示256个数(并非正0和负0一样所...

湛河区13213868944: 带符号的8位2进制数为什么最小是 - 128?带符号的8位2进制数去除符号位表示数值的只有7位.7位2进制数最大为:1111111=127.现首位加上符号位:正数... -
策狗马来:[答案] 楼上的说(估计是copy过来的),这么多,我估计楼主也不明白! 我给你简单讲一下吧: 7位2进制数000 0000的值为0,那么,它前面加上0,还表示0吧? 那好,如果它前面加上1呢,仍然表示0?这不是重复了么? 一个0,怎么用两个值来表示呢...

湛河区13213868944: 为什么带符号的8位二进制数是 - 128~而不是 - 127~ -
策狗马来:[答案] 因为一个带符号数和一个不带符号数一样,8位能表示256个值,如果是-127~127的话,只有255个数! 根据补码原则,0000 0000表示0,而1000 0000却不能表示-0,所以根据原则可知,-1000 0000表示的是-128.这就是为什么8位带符号数的范围是...

湛河区13213868944: 为什么8位二进制表示的最小数是—128? -
策狗马来: 这涉及到计算机数值的补码表示,关于编码表示的相关知识可参阅:http://hi.baidu.com/sonmeika/blog/item/39723a30aa24149da9018e2b.html 如果八位二进制数用原码表示,那么00000000和10000000都表示为0,因为最高位为符号位,正零等于负零,其表示范围是[0, 255];如果用补码表示10000000就是-128,其表示范围是[-128, 127].

湛河区13213868944: 补码表示的,带符号的八位二进制数,可表示的整数为什么是 - 128到+127, - 128怎么来的 -
策狗马来: 设八位数字从高位到低位分别为a7, a6, ..., a0.那么它表示的整数为: -a7*(2^7)+a6*(2^6)+a5*(2^5)+...+a0*(2^0) 因此,它能表示的最小的整数为:10000000=-2^7=-128 最大的整数为:01111111=(2^7)-1=127

湛河区13213868944: 8位二进制数能表示的最小整数为什么是 - 128,10000000为什么是 - 128的补码. -
策狗马来: 只能写一百字,叫我情何以堪~~~~ 有符号的8位二进制只有补码可以表示-128,而原码和反码只能表示-127到+127这个区间内的数,表示不了-128 定义规定:-128的补码是:1000 0000,用常规方法无法计算!

湛河区13213868944: 八位二进制数能表示的最大数及最小数各是多少?请说明一下原理 -
策狗马来:[答案] 1.如果这八位二进制数是有符号的: (1.)最大数是127:是2的7次方减1,也就是127,最大数的二进制代码是01111111,由于是有符号的,所以最高位是符号位,0表示正数,其余位7个位全1表示最大数; (2.)最小的数是-128:由于负数在计算...

湛河区13213868944: 8位二进制数最小整数为什么是 - 128? - 128的原码反码补码又分别是什么呢? -
策狗马来:[答案] 因为+0和-0都是0,有重复, 所以在八位二进制中就把-0当作最小数-128用 即1000 0000 有问题请接着提问、记得最佳、谢谢!

湛河区13213868944: 为什么8位二进制码有符号定点整数的最小整数是 - 128 -
策狗马来: 第1位为符号位 max=(01111111)B=127 min=(10000000)B=-128

湛河区13213868944: 为什么8位二进制数表示的范围是 - 128到127(有符号型数据),我不懂为什么是 - 128 -
策狗马来:[答案] -128是10000000,八位二进制数一共有256种码,1到127,政府数只差一个最高位,0是00000000(即正0),负0,即10000000被定义为-128.

湛河区13213868944: 8位符号数的取值范围为何是 - 128到+127求详解← - ← -
策狗马来:[答案] 8位二进制,最高位是符号位,所以0开头的是正数,1开头是负数 所以负数部分为: 1111 1111 1000 0000 也就是-1~-128 非负范围: 0000 0000 0111 1111 也就是0~127 合起来就是-128~+127

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网