C/C++中两个INT_MAX编号的乘积不正确
Incorrect product of two INT_MAX numbes in C/C++
在我的例子中,两个INT_MAX数字的乘积是296447233
,这是不正确的。
long long int product = 0;
product = 2137483647 * 2137483647;
printf("product: %llin", product);
我做错了什么,如何纠正??谢谢
您的两个2137483647
都属于int
类型。所以它们保持这种类型并溢出。
使它们成为long long
s:
product = 2137483647LL * 2137483647LL;
或铸造:
product = (long long)2137483647 * 2137483647;
尝试
product = 2137483647LL * 2137483647LL;
以确保编译将数字视为长
相关文章:
- <streamsize>C++ 中 numeric_limits::max() 的值
- 黑客级别的Mini-Max Sum
- 'max'匹配'std::function<const int &(const int &, const int &)>'无过载
- 关于 std::min, std::max 中的比较运算符的混淆
- 如何在数组中找到最小编号的索引号?
- 找到一种有效的方法,在 2 个巨大的缓冲区上执行 MAX,每字节字节
- 贪婪算法编号列表
- std::max() 函数与定点实现的比较中的问题
- 使用 CImg 库的 std::min 和 std::max 的编译问题
- 为什么在尝试测量函数返回所需的时间时,我的运行时编号是错误的?
- 在 3ds Max 中更新进度条后,环境和效果 UI 不刷新
- 从自定义类获取对象向量中的 max 元素
- 如何在C++中递归地找到max元素的索引?
- 为什么在为其分配编号后无法显示我的字符串值?
- SFINAE 与 numeric_limits<T>::max() 在 MSVC2017 上
- 输出返回编号。等于输入字符串的单词的字符串数
- C++ gRPC 线程编号配置
- 这句话是什么意思 - " vector<long long> distance(n, std::numeric_limits<long long>::max()); "?
- 检查特定txt文件中的项目是否符合"名称编号USACO"中的约束
- 在f2c.h文件中定义min()max()宏时出错