标题: MulDiv函数
作者: Demon
链接: https://demon.tw/programming/muldiv.html
版权: 本博客的所有文章,都遵守“署名-非商业性使用-相同方式共享 2.5 中国大陆”协议条款。
MulDiv函数是Kernel32.dll提供的一个Windows API:
int MulDiv(
_In_ int nNumber,
_In_ int nNumerator,
_In_ int nDenominator
);
把前两个32位数相乘,然后用得到的64位数除以第三个32位数,结果四舍五入后返回。如果除数为0或者发生了溢出,那么返回-1。
#include <stdio.h>
#include <windows.h>
//作者: Demon
//网站: https://demon.tw
int main()
{
int a, b, c, d;
a = 0x7fffffff;
b = 0x7fffffff;
c = 0x7fffffff;
d = a * b / c;
printf("%d\n", d);
d = MulDiv(a, b, c);
printf("%d\n", d);
return 0;
}
可是如果返回-1的话,怎么区分是计算结果本身就是-1还是发生了错误呢?
赞赏
微信赞赏
支付宝赞赏
随机文章: