二进制中开头的数字0表示正整数,1表示负整数吗

2021-03-07 14:36:29 字数 5252 阅读 1343

1楼:愿上主祝福你

不一定。

这个需要看它表示的是什么数据类型。

一般的计算机中

有符号数的原码、补码、反码的第一位是0表示正数,1表示负数如果是无符号数,那就不表示符号,也作为数据位如果是移码,第一位是0表示负数,是1表示正数上面这些说白了就是说如果说有的程序中用这个值的互补数表示负数(如最多能显示五位数,那么00001表示1,而100000-00001=11111就表示-1同理11110是-2)等等,这就相当于在最高位上的还有一位永远减不完的位置。00000(=0)相当于100000,它减了1顺理成章的得11111(-1)

具体的知识你可以找一本计算机组成原理方面的书籍看看,里面有这样子的一个章节来说明这些东西。

2楼:

在规定的字长下,“二进制

中开头的第一个数字0表示正整数、1表示负整数”。比如你说的11101011,如果是char型,那它是负数;但若是short或int型,那它仍是正数,只是前面多出来的0没有显示出来!所以,一般不用“第一个数字”而是用“最高位”来表述这种情况。

3楼:我是

嗯,首位是这样表示的

计算机的二进制带符号运算为什么用0表示正数1表示负数

4楼:薇薇采儿

在二进制码中,为了区分正负数,采用最高位是符号位的方法来区分,正数的符号位为0、负数的符号位为1.剩下的就是这个数的绝对值部分,可以采用原码、反码、补码3种形式来表示绝对值部分。

原码最简单,也最好理解.原码就是绝对值的二进制数形式:例如+7的8位二进制原码是00000111,-7的8位二进制原码是10000111。

但对于二进制运算而言,原码的运算不够方便,当两个数相加时,先要判断这两个数的符号是否相同,符号不同的话,还要判断哪一个数的绝对值更大.所以在计算机中,通常都是采用补码形式。

正整数的补码与原码形式相同,例如+7的8位二进制补码是00000111;而负整数的补码则可以通过下列方式得到:将这个负整数的绝对值求反加1,连同符号位1一起表示就可以了.例如-7的8位二进制补码:

将-7的绝对值7求反加1得1111001,连同符号位1一起就是11111001。

你也可以练习一下+13和-13的8位二进制补码:+13d=00001101,-13d=11110011。

5楼:小个子继电器

0代表的是正,1代表的是1,在计算机二进制中,计算机只能辨别0和1,如果是有符号数字,最高位(左边第一位)表示符号,0表示正数,1表示负数!!

一个数的原码,反码,补码怎么算

6楼:匿名用户

数在计算机中是以二进制形式表示的。

数分为有符号数和无符号数。

原码、反码、补码都是有符号定点数的表示方法。

一个有符号定点数的最高位为符号位,0是正,1是副。

以下都以8位整数为例,

原码就是这个数本身的二进制形式。

例如0000001 就是+1

1000001 就是-1

正数的反码和补码都是和原码相同。

负数的反码是将其原码除符号位之外的各位求反

[-3]反=[10000011]反=11111100

负数的补码是将其原码除符号位之外的各位求反之后在末位再加1。

[-3]补=[10000011]补=11111101

一个数和它的补码是可逆的。

为什么要设立补码呢?

第一是为了能让计算机执行减法:

[a-b]补=a补+(-b)补

第二个原因是为了统一正0和负0

正零:00000000

负零:10000000

这两个数其实都是0,但他们的原码却有不同的表示。

但是他们的补码是一样的,都是00000000

特别注意,如果+1之后有进位的,要一直往前进位,包括符号位!(这和反码是不同的!)

[10000000]补

=[10000000]反+1

=11111111+1

=(1)00000000

=00000000(最高位溢出了,符号位变成了0)

有人会问

10000000这个补码表示的哪个数的补码呢?

其实这是一个规定,这个数表示的是-128

所以n位补码能表示的范围是

-2^(n-1)到2^(n-1)-1

比n位原码能表示的数多一个

又例:1011

原码:01011

反码:01011 //正数时,反码=原码

补码:01011 //正数时,补码=原码

-1011

原码:11011

反码:10100 //负数时,反码为原码取反

补码:10101 //负数时,补码为原码取反+1

0.1101

原码:0.1101

反码:0.1101 //正数时,反码=原码

补码:0.1101 //正数时,补码=原码

-0.1101

原码:1.1101

反码:1.0010 //负数时,反码为原码取反

补码:1.0011 //负数时,补码为原码取反+1

总结:在计算机内,定点数有3种表示法:原码、反码和补码

所谓原码就是前面所介绍的二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。

反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。

1、原码、反码和补码的表示方法

(1) 原码:在数值前直接加一符号位的表示法。

例如: 符号位 数值位

[+7]原= 0 0000111 b

[-7]原= 1 0000111 b

注意:a. 数0的原码有两种形式:

[+0]原=00000000b [-0]原=10000000b

b. 8位二进制原码的表示范围:-127~+127

2)反码:

正数:正数的反码与原码相同。

负数:负数的反码,符号位为“1”,数值部分按位取反。

例如: 符号位 数值位

[+7]反= 0 0000111 b

[-7]反= 1 1111000 b

注意:a. 数0的反码也有两种形式,即

[+0]反=00000000b

[- 0]反=11111111b

b. 8位二进制反码的表示范围:-127~+127

3)补码的表示方法

1)模的概念:把一个计量单位称之为模或模数。例如,时钟是以12进制进行计数循环的,即以12为模。

在时钟上,时针加上(正拨)12的整数位或减去(反拨)12的整数位,时针的位置不变。14点钟在舍去模12后,成为(下午)2点钟(14=14-12=2)。从0点出发逆时针拨10格即减去10小时,也可看成从0点出发顺时针拨2格(加上2小时),即2点(0-10=-10=-10+12=2)。

因此,在模12的前提下,-10可映射为+2。由此可见,对于一个模数为12的循环系统来说,加2和减10的效果是一样的;因此,在以12为模的系统中,凡是减10的运算都可以用加2来代替,这就把减法问题转化成加法问题了(注:计算机的硬件结构中只有加法器,所以大部分的运算都必须最终转换为加法)。

10和2对模12而言互为补数。

同理,计算机的运算部件与寄存器都有一定字长的限制(假设字长为8),因此它的运算也是一种模运算。当计数器计满8位也就是256个数后会产生溢出,又从头开始计数。产生溢出的量就是计数器的模,显然,8位二进制数,它的模数为28=256。

在计算中,两个互补的数称为“补码”。

2)补码的表示: 正数:正数的补码和原码相同。

负数:负数的补码则是符号位为“1”,数值部分按位取反后再在末位(最低位)加1。也就是“反码+1”。

例如: 符号位 数值位

[+7]补= 0 0000111 b

[-7]补= 1 1111001 b

补码在微型机中是一种重要的编码形式,请注意:

a.采用补码后,可以方便地将减法运算转化成加法运算,运算过程得到简化。正数的补码即是它所表示的数的真值,而负数的补码的数值部份却不是它所表示的数的真值。

采用补码进行运算,所得结果仍为补码。

b.与原码、反码不同,数值0的补码只有一个,即 [0]补=00000000b。

c.若字长为8位,则补码所表示的范围为-128~+127;进行补码运算时,应注意所得结果不应超过补码所能表示数的范围。

7楼:湖海散人

首先,机器数是有上限的,以8位数为例,只有256个数可以处理,即00000000到11111111

如果只考虑自然数,那么00000000~11111111对应0~255,就是二进制表示。但是有的时候需要负数,怎么办呢?科学家想到,这256个数可以分成2组,让0开头的表示正数和0,1开头的表示负数。

所以00000000~01111111依然对应0~127,但是10000000~11111111本该对应-0~-127, 0和-0是一回事,于是把-0当做-128 。这样就用00000000~11111111表示了-128~127 。这就是【原码】

补码是为了计算方便而发明的。原始计算器只能做加法不能做减法,但是科学家发现,例如7+(-5)=2可以这样算:7+(-5) = 7+(10000-5)-10000 = 10002 - 10000 = 2 。

这很奇怪,因为机器太傻,只能做加法,但是虽然不会减法,-10000还是很方便的,只要去掉开头的1;用10000减也是很方便的,因为可以用9999减然后+1,而用9999减,只要把每一位用9减。这就弥补了不能做减法的不足。以10000为基准,我们说-5的补码是9995,因为它们加上7后,一个是2,一个是10002,只相差一个最高位(有趣的是,计算机计算高位会溢出,比如对于8位计算,256或更大的数需要超过8位来表示,会因放不下被舍去,结果就完全相同了)。

均衡正负,补码也是用00000000~11111111表示-128~127,正数部分照旧,但是用11111111表示-1,11111110表示-2,以此类推到-128,因为7+(-2)=5,7+11111110(即254)等于231,二进制表示要9位:100000101,舍去第一位为00000101,就是5 。这就是【补码】

反码是为了方便计算补码,提出的称呼。十进制每一位取反不就是用9999减么?二进制就是用11111111减,等价于取反(因为只有2个数字,而十进制有10个)。

对于-128到0之间的数,比如-5,即-00000101,按位取反即可。但是原码是把第一位当成符号的,所以你可以先写成【自然二进制表示】,然后全部取反。之所以有反码,是因为反码很好算(按位取反),然后+1就是补码,因此充当了一个中间角色。

原码好看,补码好用,反码是中间步骤。

长度为节的二进制整数,采用补码表示,且由1和0组

1楼 做而论道 1 由5个1和3个0组成,可以表示的最小十进制整数 8 因为二进制数 1 111 1000 左边的1,代表负号 其余7位,求反加一,是绝对值的原码 8。 即 1 111 1000 8。 2 由4个1和4个0组成,可以表示的最大十进制整数 120 因为二进制数 0 111 1000 左...

求问在正数和负数中0表示什么,0是正数吗?它是负数吗?它代表什么?

1楼 87110寄毁 0既不是正数,也不是负数,它是正 负数的界限,表示 基准 的数,零不是表示 没有 ,它表示一个实际存在的数量 正数 负数和0统称有理数 2楼 奈芷波郦恬 我们可以在直线上 表示正数 负数和0,直线上每一个点都与 一个数 相对应?任何一个数都可以用直线上的 点 来表示 到初中时是...

计算机基础长度为字节的二进制整数,若采用补码表示,且由

1楼 可轩 最小整数 绝对值最大负数 x 补 1000 0111b x 反 1000 0110b x 原 1111 1001b x 111 1001b 121d 长度为1个字节的二进制整数 若采用补码表示 且由4个 1 和4个 0 组成 则可表示的最小整数为多少 2楼 亚平宁的恶来 补码 1000 ...