为什么整型变量的取值范围是-32768到32767而不是-32767到32767那么-32768在内存中的储存形式是怎样的?

 我来答
仁昌爱娱乐
高粉答主

2020-02-03 · 专注关心娱乐
仁昌爱娱乐
采纳数:760 获赞数:459835

向TA提问 私信TA
展开全部

计算机用二进制表示负数是用的“补码法”,做法是正数按原码,负数用其相反数的反码加一。这种结果用-32768代替了“-0”,可以使符号位能与有效值部分一起参加运算,从而简化运算规则;同时使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计。

用补码1000 0000作为十进制数-32768在内存中的存储形式。1000 0000是补码形式,计算其真值的过程为取反加1,即1111 1111+1,这里符号位参加运算,并且溢出,丢掉,结果为0。

扩展资料:

如果指定一个数超出了整型的范围,将会被解释为浮点型。同样如果执行的运算结果超出了整型的范围,也会返回浮点型。

要明示地将一个值转换为整型变量,可以用 (int) 或 (integer) 强制转换。不过大多数情况下都不需要强制转换,因为当运算符,函数或流程控制需要一个整型参数时,值会自动转换。当从浮点型数转换成整型数时,数字将被取整(丢弃小数位)。

匿名用户
推荐于2016-04-20
展开全部
是根据硬件来的-32768换算成十六进制是8000换成二进制是1000000000000000 ,而32767化成十六进制是7FFF 换成二进制是0111111111111111楼主可以数数这都是32位的最高位是符号位,现在的计算机内部运算时是用32为数值计算的,所以不会出现-32767除非有31位的运算方式
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-01-22
展开全部
负数是以补码的形式出现的,因此要大一个数。比如1000... ...000,这个数最高位为符号位,1表示为-,而负数以补码的方法为:后面的15个0的反码+1=32767+1=32768,加上符号位为-32768.这种方式是被规定的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-01-22
展开全部
这是自定义 为什么1+1=2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式