【问题标题】:Overflow in long long intlong long int 中的溢出
【发布时间】:2021-05-20 11:49:39
【问题描述】:

我在这种情况下面临溢出问题,输出为 7392445620511834112,我想将 b 和 c 的 2 个大值相乘并存储该值。

#include<bits/stdc++.h>
using namespace std;
#define ll long long int
int main()
{
    ll b=1000000000000000000;
    ll c=2000000000000000000;
    ll out=b*c;
    cout<<out;
}

【问题讨论】:

标签: c++ storage overflow


【解决方案1】:

如果您从long long 更改为unsigned long long,您可能会更接近一点。如果您不关心绝对精度,您可以在此处使用浮点类型,即使只是 float 也足以以 cout 正确显示输出的方式存储输出,但整数更大或更小,或者在处理以其他方式输出,您可能希望使用doublelong double 以获得更大的尺寸和精度。 并且不要听所有的人告诉你你做错了,他们整天都在争论堆栈交换上的那些事情。你是怎么做的很好,否则它不会编译。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 2018-12-01
    • 1970-01-01
    • 2018-10-20
    相关资源
    最近更新 更多