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