MulDiv Windows API 中的便利函数等同于(a*b)/c
,但它将a*b
的中间结果存储在一个64 位变量中 在除以 c
之前避免整数溢出,其中 a*b
大于 MAX_INT
但 (a*b)/c
不是。
WINBASEAPI
int
WINAPI
MulDiv(
_In_ int nNumber,
_In_ int nNumerator,
_In_ int nDenominator
);
在 Linux 中编程时,是否有等效的便捷功能?
最佳答案
Linux 好像没有对应的功能
我创建了一个简单的内联函数(尽管我还没有用 64 位编译测试过它)
inline int mul_div(int number, int numerator, int denominator) {
long long ret = number;
ret *= numerator;
ret /= denominator;
return (int) ret;
}
关于c++ - 是否有与 Linux 的 MulDiv 等效的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14872499/