这两个是相同的

时间:2017-06-04 16:35:50

标签: math

我使用的传感器的公式是:

%RH  = (125 * rhData / 65536) - 6

我见过的例程是:

*rhData = ( (uint32_t) readData[0] << 8 ) + ( readData[1] & 0xfc );
*rhData = ( ( ( *rhData ) * 15625L ) >> 13 ) - 6000;

我看不出两者是一样的,有人可以解释它是如何起作用的吗?

你的Simon M。

2 个答案:

答案 0 :(得分:0)

看起来像是带有比例1000的定点格式。然后表示结果的整数是

RH*1000 = 5^3 * rhData / 2^16 * 2^3*5^3
        = 5^6 * rhData / 2^13
        = (15625 * rhData) >> 13

这正是公式中使用的内容。

答案 1 :(得分:0)

这是一个大脑褪色的日子! 乘以125 * 1000,然后除以2以找到最小整数。 (15625)

扔给我的是125 ^ 2 = 15625

由于

你的Simon M。