gpt4 book ai didi

Python:使用异或和移位寄存器的 CRC 实现

转载 作者:太空宇宙 更新时间:2023-11-04 10:49:04 24 4
gpt4 key购买 nike

我试图用 CRC 生成器 100101 实现 5 位 CRC。但是,这段代码并没有反射(reflect) CRC 中的硬件 Xor 和移位寄存器;在硬件层面,我们有以下内容:

enter image description here

如何在 python 上实现?

作为澄清,我想知道是否有一些代码处理按位异或和移位运算符 << 作为解决此问题的方法

最佳答案

我不确定你在问什么——你的代码到目前为止看起来很好,而且正如你所说,它给出了正确的结果。

我可以为您指出 collections.deque我发现标准库中的数据结构对于表示移位寄存器非常有用,因为它提供了 rotate() 方法来执行这种循环移位。

此代码给出与您的代码相同的结果:

from collections import deque

deque_crc = deque([0,0,0,0,0],maxlen=5)

myID.extend(deque_crc)

for x in myID:
deque_crc.rotate(-1)
deque_crc[2] = (deque_crc[2] + deque_crc[4]) % 2
deque_crc[4] = (deque_crc[4] + x) % 2

myID[-5:] = deque_crc

print myID

编辑:

由于您要求按位实现算法,您可能需要检查这些来源:

关于Python:使用异或和移位寄存器的 CRC 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15207036/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com