答案 0 :(得分:2)
我在Python 3中假设,如果你有以字节为单位的数据包,即说packet = bytes(0xF0, 0xF0, 0xDE, 0xAD, 0xBE, 0xEF, 0xDE, 0xAD, 0xBE, 0xEF, 0xF0, 0xF0)
,那么校验和将只是这些字节总和的1的补码的最低有效字节,即{{1} }。
因此,如果您有一个有效负载(0 - sum(packet)) & 0xFF
,这将是使其成为完整数据包的代码:
payload
答案 1 :(得分:0)
假设此thing是目标。它们可能意味着您应该将所有字节加在一起,但将结果存储在8位变量中(C中为uint8_t
)。这意味着这个变量会多次溢出,数据的最低有效字节就是校验和。
在20世纪70年代经常使用类似的技术,但是它们经常将得到的LS字节反转为一个补码或二进制补码。 (例如,摩托罗拉S-record和Intel Hex链接器格式如何获得校验和。)
请注意:
因此,该产品不适用于任何工业自动化设备"。它不应该在工业环境中使用。