c++中为什么输出来是负数

#include<stdio.h>intmain(){inta,i;scanf("%d",&a);for(i=1;i<=30;i++)a=a*2;printf("%d",... #include<stdio.h>
int main()
{
int a,i;
scanf("%d",&a);
for(i=1;i<=30;i++)
a=a*2;
printf("%d",a);
return 0;
}
展开
 我来答
旅堡衍e
推荐于2018-04-08 · TA获得超过119个赞
知道小有建树答主
回答量:144
采纳率:100%
帮助的人:105万
展开全部
这个代码分析来是你要输入一个数字a,然后输出值是
a*2^30 这在通常情况下是一个比较大得数字(根据输入的a的值而定)
所以产生了数字溢出
由于有符号的整型,第一位是用来表示符号的
你用%d,就显示成负数了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式