【发布时间】:2020-03-27 04:00:31
【问题描述】:
我想解决以下问题:假设我们有两个int64_t 数字a 和b。如果乘积符合int64_t 数据类型和其他方式的最低64 位乘法结果,我们希望找到a * b。我该如何解决这个问题?我知道uint64_t数据类型使用长乘法的类似问题的解决方案,我们可以在这里应用它吗?
【问题讨论】:
-
您的编译器是否支持 128 位整数作为扩展?
-
可以,但我不应该使用它
-
它与
if(INT64_MAX / a > b) overflow = true;类似。您还必须考虑负数和INT64_MIN。
标签: c integer long-integer integer-overflow