【学习笔记】C#的向上取整
本篇讨论的是C#。
整数和浮点数
整数运算使用的是 ALU(算术逻辑单元)寄存器,而浮点数运算使用的是 FPU/SSE(浮点运算单元)寄存器。
整数向上取整
1. 数学公式法
使用 $ \frac{a+b-1}{b} $ 就可以获得向上取整,但是要注意当\(a+b\)很大的时候,可能会超界。
int num = (a+b-1)/b;
2. 使用三元运算符号
int num = (a / b) + (a % b == 0 ? 0 : 1);
缺点:运算了一次除以,又运算了一次求余。
3. CPU核心指令
使用Math.DivRem,
用法:int quotient = Math.DivRem(a, b, out int remainder);
quotient即商,remainder即余数。
然后int num = quotient + (remainder == 0 ? 0 : 1);就可以了。

浙公网安备 33010602011771号