使用整数运算将摄氏度转换为华氏度(对于 asm 实现)

Converting Celsius to Fahrenheit with integer arithmetic (for an asm implementation)

我想知道如何对这个问题进行数学计算。将摄氏温度转换为华氏温度。我可以解决这个问题的大部分,但我不明白函数中的 9/5。我知道将有 4 的余数和 1 的商我如何处理这些数字以获得正确的转换?

我已经在我的计算器上做了几个关于如何让 9/5 工作的示例计算,但我让它工作的唯一方法是使用另一个分数,它会给我余数.

公式如下:F = (9/5) * Celsius + 32

诀窍是转换术语:

F = (9/5) * Celsius + 32
  = ( (9 * Celsius) / 5 ) + 32
  = ( (9 * Celsius) / 5 ) + ( (32 * 5) / 5)
  = ( (9 * Celsius) / 5 ) + ( 160 / 5)
  = ( (9 * Celsius) + 160 ) / 5

现在,你可以在最后做除法了:

  1. 计算 9 * 摄氏度。
  2. 加160。
  3. 除以 5。
  4. 用余数四舍五入。