gpt4 book ai didi

c++ - 乘以 __int64

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:57:18 25 4
gpt4 key购买 nike

有人可以(详细地)向我解释如何将两个 __int64 objs 相乘并检查结果是否适合 __int64。

注意:不要使用任何依赖于编译器或处理器的例程。

最佳答案

不假设 ab 是正数:

__int64 a,b;
//...
__int64 tmp_result = abs(a) * abs(b) ;
if (
( a && b ) &&
(
( tmp_result < abs(a) || tmp_result < abs(b) ) ||
( tmp_result / abs(a) != abs(b)) ||
( a == TYPE_MIN && b != 1) ||
( b == TYPE_MIN && a != 1)
)
)
std::cout << "overflow";
__int64 result = a * b;

编辑:向代码中添加极端情况。

编辑:在我看来,( a && a * b/a != b) 就足够了。

关于c++ - 乘以 __int64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5840529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com