c程序中基本整型的取值范围:-32768~32767是怎么算出来的?

 我来答
alei65507115
2018-03-30 · TA获得超过6万个赞
知道小有建树答主
回答量:36
采纳率:0%
帮助的人:6754
展开全部
  • 整型在你那个版本里是占用两个字节来存储的,每个字节8位,也就是16位的2进制,大家知道这样一个2进制数总是对应着一个正数。

  • 但是要表示正数和负数该怎么办,聪明的科学家在限制的2进制数位数的前提下采取了补码(算法及详细见补码)的形式来存储负数。

  • 第一位是符号位,也就是用它来表明这个数的符号(正数:0 负数:1)所以int型的最大正数为0111111111111111(15个1),其取值为2(15)-1,就是2的15次方减一,即32768-1=32767。

  • 最小负数:1000000000000000,按照补码的运算,得这个2进制数对应的十进制为-32768,这样也解释了为什么最大正数与最小负数的绝对值差1。

匿名用户
推荐于2017-11-25
展开全部
int(整型)在你那个版本里是占用两个字节来存储的,每个字节8位,也就是16位的2进制,大家知道这样一个2进制数总是对应着一个正数,但是要表示正数和负数怎么办呢?聪明的科学家在限制的2进制数位数的前提下采取了补码(算法及详细见“补码”百度百科 http://baike.baidu.com/view/377340.htm)的形式来存储负数,第一位是符号位,也就是用它来表明这个数的符号(正数:0 负数:1)所以int型的最大正数为0111111111111111(15个1),其取值为2(15)-1,就是2的15次方减一,即32768-1=32767。最小负数:1000000000000000,按照补码的运算,得这个2进制数对应的十进制为-32768,这样也解释了为什么最大正数与最小负数的绝对值差1
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-05-29
展开全部
首先我们需要了解补码的原理,因为在pc中一切数值都是用补码来表示的具体关于补码我就不解释了哈,如果对补码不是很了解的话可以参考这个链接: http://baike.baidu.com/view/377340.html?wtp=tt接下来解释一下为什么int型在C语言中的范围是-32768-32767int型在内存中占用2个字节来存储,一个字节是8bit,那么2个字节就是16bit,一个bit可以为0或者1,所以16bit就是由16个0或1组成的,而这个16位数就是一个补码对于正数来说,这个16位的补码可以表示的最大值为:0111111111111111(16个1),其取值为2(15)-1,就是2的15次方减一,即32768-1=32767对于负数来说,这个16位的补码可以表示的最小值为:1000000000000000,这个补码对应的十进制数就是-2(15),就是-2的15次方,即-32768
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhangsir199
2019-07-08
知道答主
回答量:8
采纳率:0%
帮助的人:6.6万
展开全部
“基本整型”是16位长度的整形,除去最高位的符号位,2^15=32768,因0是正数,从0开始到32767就完了。剩下的一半是复数。
扩展:无符号整型的范围是 0~65535,因不含复数部分,包含的正数范围扩大了一倍。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
狐言2333无悔
2020-02-15
知道答主
回答量:3
采纳率:0%
帮助的人:1791
展开全部
正数:0111 1111 1111 1111 ,2的15次方是32768,0~32767为32768个数,所以正数最大是32767,那么对于负数来说呢,负数:1000 0000 0000 0000表示,最小负数就是-32768。所以范围:-32768~32767
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式