【问题标题】:Best way to check checksum of bytes in python在python中检查字节校验和的最佳方法
【发布时间】:2018-09-05 17:26:40
【问题描述】:

我从串口收到一些数据包。数据包示例:

                         last 2 bytes
                              /\
[ data length ] [ data ] [packet crc]

我得到 crc,例如,b'w\x06'。值为 125 (sum(b'w\x06') = 125)。我计算数据包的 crc:sum(data)。我得到1655。我知道1655 与b'w\06' 相同,但我不知道如何将其简单地转换为125 并与正确的校验和进行比较。我需要将1655 转换为与接收到的数据包字节(125 或b'w\x06')相同的值吗? binascii/struct/还有别的吗?

谢谢

【问题讨论】:

  • 这不是 CRC - 在这种情况下涉及的数学比sum()...
  • 好的,数据包字节的总和是正确的名称

标签: python crc


【解决方案1】:

你可以使用int.from_bytes:

int.from_bytes(b'w\x06', 'little')

或struct:

struct.unpack("<H", b'w\x06')[0]

【讨论】:

  • 是的,很简单,我没有看正确的文档:)
猜你喜欢
  • 2011-09-13
  • 2019-10-09
  • 1970-01-01
  • 1970-01-01
  • 2014-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多