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

#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;
}

这个代码分析来是你要输入一个数字a,然后输出值是
a*2^30 这在通常情况下是一个比较大得数字(根据输入的a的值而定)
所以产生了数字溢出
由于有符号的整型,第一位是用来表示符号的
你用%d,就显示成负数了
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网