计算机中一个字节最大二进制,在计算机中一个字节最多能容纳的二进制位数是 – 手机爱问...

本文详细介绍了有符号二进制数的表示方法,包括补码表示法,以及在16位系统中如何表示-32768到32767的范围。解释了在计算过程中如何可能出现溢出,并举例说明了溢出导致的错误结果。同时,讨论了原码、反码和补码之间的转换关系。
摘要由CSDN通过智能技术生成

59f62c0d5424d7f73adddf37ae9ca1dc.png

2010-12-19

短整形如果是2字节,就是16位,在有符号的情况下,正数最高是0111 1111 1111 1111,负数是1111 1111 1111 1111,为什么换算成十进制最高位就变成了32767,负数的变成了-32768,2进制中的-32768不是应该是1000 0000 0000 0000么,在加上符号位就成了17位了,这个数值范围究竟是怎么分配的

有符号二进制数的表示是这样的:如果计算机的字长为n位,n位二进制数的最高位为符号位。其余n-1位为数值位,采用补码表示法时,可表示的数X的范围是 -2的(n-1)次幂 <= X <= 2的(n-1)次幂-1。 如果字长是16位,补码表示的范围就是 -2的15次幂 <= X <= 2的15次幂-1,也即可表示的范围是-32768到32767。

计算机中二进制表示有原码、反码、补码表示。

原码是指将最高位作为符号位(0表示正,1表示负),其它数字位代表数值本身的绝对值的数字表示方式。

反码表示规则为:如果是正数,则表示方法和原码一样;如果是负数,则保留符号位1,然后将这个数字的原码按照每...全部

有符号二进制数的表示是这样的:如果计算机的字长为n位,n位二进制数的最高位为符号位。其余n-1位为数值位,采用补码表示法时,可表示的数X的范围是 -2的(n-1)次幂 <= X <= 2的(n-1)次幂-1。

如果字长是16位,补码表示的范围就是 -2的15次幂 <= X <= 2的15次幂-1,也即可表示的范围是-32768到32767。

计算机中二进制表示有原码、反码、补码表示。

原码是指将最高位作为符号位(0表示正,1表示负),其它数字位代表数值本身的绝对值的数字表示方式。

反码表示规则为:如果是正数,则表示方法和原码一样;如果是负数,则保留符号位1,然后将这个数字的原码按照每位取反,则得到这个数字的反码表示形式。

补码是计算机表示数据的一般方式,其规则为:如果是正数,则表示方法和原码一样;如果是负数,则将数字的反码加上1(相当于将原码数值位取反然后在最低位加1)。

所以正数的原码、反码、补码是相同的,32767二进制原码表示是0 111 1111 1111 1111,所以反码、补码表示都是0 111 1111 1111 1111;

由原码定义可知十进制负数-32768在16位计算机中是表示不出来的,1111 1111 1111 1111表示的是-32767,但我们知道32768的原码是1 000 0000 0000 0000,其反码是0 111 1111 1111 1111,补码是1 000 0000 0000 0000,由补码定义可知恰好表示-32768。

两个有符号数进行加减运算时,如果运算结果超过可表示的有符号数的范围时,就会发生溢出,使计算机结果出错。很显然,溢出只能出现在两个同号数相加或两个异号数相减的情况。所以两正数相加,结果超出了范围,形式上变成了负数;两负数相加,结果超出了范围,形式上变成了正数(减法其实就是两个负数相加)。

-1用补码表示是1111 1111 1111 1111,即1000 0000 0000 0000 + 1111 1111 1111 1111时最高位有进位输出时,发生了溢出,形成了0111 1111 1111 1111,这就是有符号十进制数32767的二进制表示法,结果当然是32767了。

。收起

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值