int变量占16位,数的范围是-(2^15)~(2^15-1)。为什么?

大家好!这是C语言教材里的内容。在整型变量一节里,unsigned[int]所占位数是16位,相应数的范围就是0~(2^16-1)。这个我能理解,因为2进制数,最多占16... 大家好!这是C语言教材里的内容。
在整型变量一节里,unsigned [int]所占位数是16位,相应数的范围就是0~(2^16-1)。这个我能理解,因为2进制数,最多占16位,最大的就是2^16-1了。
但是int所占位数也是16位,为什么最大的数却是(2^15-1)?莫非正号也占一位?另外,最小的数不也应该是-(2^15-1)吗,为什么是-2^15呢?
想了很久,只好求助各位!多谢了!
您好!这里说的是数的大小范围,没有说数量范围吧?
展开
 我来答
轩辕黄弟
2009-06-15 · TA获得超过513个赞
知道小有建树答主
回答量:137
采纳率:0%
帮助的人:0
展开全部
如果int型占用16位的话 可以肯定的是 最多能表示 2^16 个数
如果是无符号行 0~2^16-1 正好是2^16个

如果有符号型 如果第一位为0 表示正数 那么最多只能表示出2^15个数 再加上一个零的话 那么它的范围就是0~2^15-1
如果第一位为1 表示负数 它的范围也应该是2^15 所取的范围是-2^15~-1

需要注意的是 当第一位为0时 其它15个也为0是 表示 0
当第一位为1时 其它15个也为0时 表示 -2^15 这也就是补码表示的特点
yrlwsl
2009-06-15
知道答主
回答量:61
采纳率:0%
帮助的人:10万
展开全部
int用了一位作为符号位,就把0~(2^16-1)平均分成了两份,一份用于表示正数,一份用于表示负数,内部是使用补码表示的,建议去看一下补码表示法,就明白了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cuau1834
2009-06-15 · 超过40用户采纳过TA的回答
知道答主
回答量:213
采纳率:0%
帮助的人:117万
展开全部
我的理解是这样的:
最高位是符号位!
0算在正数里,所以,正数比负数少一个!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式