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

时间:2015-10-25 20:06:17

标签: assembly x86 integer

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

我在计算器上做了几个关于如何使9/5起作用的样本计算,但是让它工作的唯一方法是使用另一个可以给我一个余数的分数。

以下是等式:F = (9/5) * Celsius + 32

1 个答案:

答案 0 :(得分:5)

诀窍是改变术语:

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. 使用余数来舍入结果。