论-100000乘以-100000
#我真是闲的无聊,菜的一批,才会去论-10000乘以-100000,但我不知道为什么会爆?
#计算完成之后类型转换
#计算完成之前类型转换
如下代码
这是一段错误的代码,输出的结果并不是10000000000,而是1410065408,显然,结果不正确,
为什么呢?-100000并没有爆int啊,并且结果用long long存储了啊,怎么还会错?无论是100000或者-100000这样写都不正确!!
计算完成之后进行类型转换
#include<stdio.h>
#include<iostream>
using namespace std;
int main(){
int x=-100000;
int y=-100000;
long long z=x*y;
cout<<z;
}
这是一段正确的代码,求得的结果是正确的。把x和y都定义为long long型。
为什么?
计算完成之前就行类型转换
#include<stdio.h>
#include<iostream>
using namespace std;
int main(){
int x=-100000;
int y=-100000;
long long z=(long long )x*(long long )y;
cout<<z;
}
计算完成之后进行类型转换就完了,所以啊,计算完成之前进行类型转换才行。
当有大的数据的时候,还是把他们定义为long long保险 。