首页 > 解决方案 > 如何将值存储/分配给大于其范围的数据类型

问题描述

我编写了一个简单的代码来打印当前数字与前一个数字相乘的简单系列。

#include <iostream>

using namespace std;

int main()
{
    int n, i; 
    unsigned long long result = 1;

    std::cout << "please enter the number" << std::endl;
    std::cin >> n;

    for(i=1; i<=n; i++){
        result = result*i;
    }

    cout<<result;

    return 0;
}

输出

请输入数字
65
9223372036854775808(这是 unsigned long long 获得的最高值)现在如果输入为 66,则输出为 0(因为它超出了 unsigned long long 的范围)

如何获得超出数据类型范围的变量的结果?

标签: c++unsigned-long-long-int

解决方案


推荐阅读