如何在装配中将整数四舍五入到最接近的整数?此处不允许使用分支。
例如195 * .85 = 165.75。通常,我将195与比例因子(100)相乘,然后相乘,然后除以比例因子。这将给我165。如何获得166?
如果这是一个可怕的问题,对不起,我是新来的!谢谢。
例如195 * .85 = 165.75。通常,我将195与比例因子(100)相乘,然后相乘,然后除以比例因子。这将给我165。如何获得166?
传统上,您将使用两个比例因子的幂并进行移位而不是乘除。我想现在除法和乘法的成本与许多架构上的转换相同,您可能会更关注保持一定的精度。
无论如何,正如halex几乎建议的那样,在除法之前,您需要添加0.5。最终的结果是,如果小数部分已经是0.5或更大,那么您将带进整数部分。如果没有,就不会有进位。
所以:
195 * 100 = 19500
19500 * 0.85 = 16575
16575 + 50(即0.5)= 16625
16625/100 = 166