在线校验和计算器是如何工作的?

2024-10-03 21:30:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个十六进制代码如下

025001ef5401582102049123a715060e04311c032d0100000100da646405ffaab90000000e0c002a054b006e0000f10170000100050701f83fe40002000500009219120003000400014cc80004000400a1d0330005000400252e280010000201170012000e484c543530305f56333034373042001300143839363630333230323030303237383737363446001400011f0015000e01030200030004000501060007000016000202cb300900249906000232339907000131990800073030303839363399090005323033303090110001013010000601000201060130120004000000003013000900016200ec0040010030140005fdffff5f0b30150002000d3016000200213017000104301800020004301900020061301a0008017d0196012801d4901000010160c00002038860d000012862f000020000605000017f64900001006010000100500100010050020001015003000100500400010050050002000050060002155450070002155450080001005009000100500a000100500b000100500c000100500d000146500e000400000000500f00010050100004000000005011000400000000501200040000000050130004000000005014000400000000501500040000000050160004000007d45017000200295019000400000000501a0006020000000000501b000100501c0002003c501d0006000000000000

然后,我转到https://www.scadacore.com/tools/programming-calculators/online-checksum-calculator/来计算checksum8xor。结果返回“a0”。我想知道这个计算器是怎么工作的。有人能给我解释一下Python函数吗?多谢各位


Tags: 函数代码httpscomwwwa0toolscalculator
1条回答
网友
1楼 · 发布于 2024-10-03 21:30:14

检查sum8异或

我使用了您链接的工具,它似乎在使用Parity word algorithm。在这种情况下,您可以按如下方式计算它:

  1. 将十六进制字符串转换为base-2(即由01组成)
  2. 将其拆分为块,每个块包含8位(以2位为基数)
  3. 所有这些都是异或

请注意,由于我们需要4位来写入一个十六进制数字,我们可能只需要替换1位。二,。使用分割成块,每个块包含2个基数为16的数字

示例:输入是ABCDEF,然后块是ABCDEF校验和是AB异或CD异或EF,这会给出89。在python中,这可以表示为

print(hex(0xAB ^ 0xCD ^ 0xEF))

输出

0x89

相关问题 更多 >