不使用乘法或浮点转换的整数除法的上限
在 C 和 C 中,整数除法 (x/y) 返回下限结果。要计算上限,避免浮点转换和额外的乘法,请考虑以下方法:
1。使用 (x y - 1) / y:
unsigned int x, y, q; // Round up q = (x + y - 1) / y;
此公式可确保计算上限,因为它在执行除法之前加 1。
2。避免 (x y) 中的溢出:
为了防止添加 x 和 y 时整数溢出,另一种方法是:
q = 1 + ((x - 1) / y); // if x != 0
此公式有效地将上限增加 1,除了当 x 为 0 时,它仍然为 0。
以上是如何在不使用乘法或浮点运算的情况下计算 C/C 中整数除法的上限?的详细内容。更多信息请关注PHP中文网其他相关文章!