为什么C语言中的整型取值范围是--32768~32767,是按什么规则规定,推理的?

 我来答
刑梦沙傲晴
2020-05-31 · TA获得超过1142个赞
知道小有建树答主
回答量:1295
采纳率:100%
帮助的人:5.5万
展开全部
整型的宽度是一个字,也就是2个字节,16个二进制位,最高一位二进制位用来表示符号(正或负),那么剩下的15位来表示数值。
01111111
11111111是32767,最大的正整数
00000000
00000001是1
00000000
00000000是0
11111111
11111111是-1(不是-32767)
10000000
00000001是-32767(不是-1)
10000000
00000000是-32768(不是-0),最小的负整数
计算机表示数主要从运算方式的一致性来考虑。
比如00000000
00000001表示1很好理解,但是11111111
11111111为什么是-1呢?
按照二进制加法
11111111
11111111
+
00000000
00000001=
1
00000000
00000000
结果超出了整型的宽度,溢出部分被忽略,最后的计算机结果是00000000
00000000
那么换成十进制,?+1=0,所以11111111
11111111表示成十进制就是-1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式