c++ - 如何将值存储/分配给大于其范围的数据类型
问题描述
我编写了一个简单的代码来打印当前数字与前一个数字相乘的简单系列。
#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 的范围)
如何获得超出数据类型范围的变量的结果?
解决方案
推荐阅读
- apexcharts - 如何将 ApexCharts 烛台图表与同一图表中的多条线结合起来
- r - 在 R 中使用 AND 和 OR 布尔运算符检测字符串
- database - 表 DDL 元数据的最后修改时间
- php - 使用 xpath 获取元素的最小/最大值
- java - Spring-Boot:错误注入多个bean
- ms-access - System.Data.Odbc.OdbcException (0x80131937) 发布后,我无法使用 Odbc 功能读取、删除和写入访问 mdb 文件
- java - 使用 LWJGL opengl 对球体进行纹理处理?
- java - 使用 AlarmManager 和 BroadcastReciver 创建警报
- c# - 如何检查 2 个触发器是否会发生冲突?
- powershell - 流水线 Powershell cmdlet 显示部分结果?