-1

我打算用 Python 构建一个温度测量应用程序(在资源受限的物联网设备上)。我将测量传感器的温度,将其与之前的测量值进行比较,并且仅当新测量值在允许的偏差范围内时才将数据发送到服务器。所以:

1) 测量传感器的温度

2) 检查测量值是否与前一次测量值的偏差大于某个设定偏差

示例

先前的测量值为 24.0 C,允许偏差 0,3 C

1) 温度测量为 23,5 C

2) 测量偏差超出允许范围。发送到服务器

我最初的想法是对前一个和当前的测量值进行按位异或,然后从允许的偏差中减去它。

如果结果是肯定的 -> 数据不发送

如果结果是否定的 -> 发送数据

我正在努力在 Python 中做到这一点,希望能得到一些帮助。或者,任何有关如何以不同方式执行此操作的建议将不胜感激!

4

1 回答 1

0

没有为浮点类型定义 XOR。XOR 是布尔运算,因此它本质上是对两位进行运算并产生一位。它适用于整数,因为整数值和用于表示它们的位之间存在密切关联(每个位表示分配的 2 的幂,或者是符号位)。因此,按位异或运算对两个整数中的每个单独的位位置执行异或。

在浮点中,浮点值和用于表示它们的位之间没有紧密的关联。有些位用于指数字段,对它们进行异或会对表示的值产生奇怪的影响。其他位在有效位(分数)字段中,但它们的值取决于指数字段,并且对具有不同指数的两个浮点数的有效位进行异或也会产生奇怪的效果。

要找到两个浮点值的差,只需将一个减去另一个(使用正常的浮点减法运算)。如果您只想知道差异的大小而不是其符号,请取减法结果的绝对值。

于 2018-04-16T19:27:48.470 回答