c语言赋值过程中类型转换的问题

inta=32767;shortb;b=a+1;请问b的值现在应该是多少?... int a=32767;
short b;
b=a+1;
请问b的值现在应该是多少?
展开
 我来答
百度网友2b7192e7b5
2013-01-30 · TA获得超过1917个赞
知道小有建树答主
回答量:496
采纳率:0%
帮助的人:358万
展开全部
int可以表示4字节长度,而short只有2字节。
每个字节8位,所以short只能表示2的16次方的数字,即这样一个范围:
0~65535。当然,这只是unsigned(无符号数)的范围,默认带符号,所以范围是-32768~+32767。
你将希望b变成32767 + 1 = 32768?可以这个数字无法再short的范围内表示出来
所以b变成了可表示的最小的数:-32768
l521088816
2013-01-30 · TA获得超过1772个赞
知道小有建树答主
回答量:780
采纳率:0%
帮助的人:1069万
展开全部

-32768

更多追问追答
追问
能解释一下为什么么
追答
这是二进制算法
在vc++6.0里,short和int貌似是一样的
32767: 01111111 11111111
+1后就变为10000000 00000000
第一位代表正负,所以它是-32768了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
醉梦玄冰
2013-01-30
知道答主
回答量:70
采纳率:0%
帮助的人:34.8万
展开全部
32768.000
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式