在DEV C++中LONG LONG 是个怎么会事啊?
#include<stdio.h>
#include <stdlib.h>
int main()
{long long big,a;
big=2000000000*2;
a=2000000000;
a=a*2;
printf(“a=%I64d big=%I64d”,a,big);
return 0;
}
在DEV C++中运行,输出A和BIG的值怎么不一样?
BIG溢出了!
输出:
a=4000000000 big=-294967296
使用调试工具看了半天,发现参数查看窗口中big一赋值就就溢出了,而经过运算赋值的a却没有
以上例题是本人有定义和使用的问题,百度后发现的一个很能说明本人问题的一个例子,试了很多次也没有搞明白原因,还原因是查看 了很多例子反而对DEV-C++中长整型数的输出产生了疑惑,有的说是用%I64d 输出,有的说是用%llf,还有的说是用%lld,搞的本人都迷糊了
#include<stdio.h>
#include <stdlib.h>
int main()
{long long big,a;
big=2000000000*2;
a=2000000000;
a=a*2;
printf(“a=%I64d big=%I64d”,a,big);
return 0;
}
在DEV C++中运行,输出A和BIG的值怎么不一样?
BIG溢出了!
输出:
a=4000000000 big=-294967296
使用调试工具看了半天,发现参数查看窗口中big一赋值就就溢出了,而经过运算赋值的a却没有
以上例题是本人有定义和使用的问题,百度后发现的一个很能说明本人问题的一个例子,试了很多次也没有搞明白原因,还原因是查看 了很多例子反而对DEV-C++中长整型数的输出产生了疑惑,有的说是用%I64d 输出,有的说是用%llf,还有的说是用%lld,搞的本人都迷糊了
解决方案
10
big=2000000000LL*2;
60
常量也是有类型的,2000000000类型是int,假如要long long 要写成 2000000000LL