论-100000乘以-100000

论-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保险 。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值