初学C语言老师留道作业题#include<stdio.h> int main() { short a,b; a=32767; b=a+1; printf("%... 40

初学C语言老师留道作业题#include<stdio.h>intmain(){shorta,b;a=32767;b=a+1;printf("%d,%d\n",a,b);r... 初学C语言老师留道作业题#include<stdio.h>
int main()
{
short a,b;
a=32767;
b=a+1;
printf("%d,%d\n",a,b);
return 0;
}结果是什么?还有原理
展开
 我来答
wallekuang
2012-02-29 · TA获得超过205个赞
知道小有建树答主
回答量:247
采纳率:0%
帮助的人:294万
展开全部

原理:没什么很深奥的原理,就是简单的定义赋值

一蜉蝣
2012-02-29 · TA获得超过1319个赞
知道小有建树答主
回答量:89
采纳率:0%
帮助的人:105万
展开全部
定义 a b为有符号短整型,短整型在内存分配两个字节的空间,最高位表示符号位(1表示为正0表示为负)。可以表示的范围为-32768——32767(即1111111111111111~0111111111111111),a(内存表示为0111111111111111)加1后产生溢出,各位均向前进一位,所以b中存储的数字就为1111111111111111,就是-32768了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
499658814qq
2012-02-29 · TA获得超过180个赞
知道答主
回答量:64
采纳率:0%
帮助的人:45.7万
展开全部
变量a、b为短整型,其值范围是-32768~32767。此时a为最大,加1后超过范围,溢出,并不是得到32768。而是-32768。具体原因涉及到二进制数的运算。
因此,对于定义变量类型时,要注意数的大小及数据类型范围。此例中定义b为long型,可得正确结果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f613888
2012-02-29 · TA获得超过1323个赞
知道小有建树答主
回答量:231
采纳率:100%
帮助的人:130万
展开全部
结果是a=32767,b=32768!
原理就是输入a,b,然后复值给a,复值给b!最后输出
谢谢!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
d哥110
2012-03-01
知道答主
回答量:25
采纳率:0%
帮助的人:6.9万
展开全部
32767,-32768
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式