CRC校验Python
时间: 2023-11-05 22:00:32 浏览: 242
以下是一个简单的实现CRC校验的Python代码:
```python
def crc_remainder(input_bitstring, polynomial_bitstring, initial_filler):
polynomial_bitstring = polynomial_bitstring.lstrip('0')
initial_padding = initial_filler * (len(polynomial_bitstring) - 1)
input_padded = input_bitstring + initial_padding
while '1' in input_padded[:len(input_bitstring)]:
cur_shift = input_padded.index('1')
input_padded = ''.join([
str(int(input_padded[i]) ^ int(polynomial_bitstring[i]))
if (i >= cur_shift and i < cur_shift + len(polynomial_bitstring))
else input_padded[i]
for i in range(len(input_padded))
])
return input_padded[-(len(polynomial_bitstring) - 1):]
def crc_check(input_bitstring, polynomial_bitstring, check_value):
remainder = crc_remainder(input_bitstring, polynomial_bitstring, '0')
return remainder == check_value
```
这个代码中,`crc_remainder`函数计算输入比特串的CRC余数,`crc_check`函数检查给定的输入比特串和CRC校验值是否匹配。这个实现使用了异或运算符和位操作来计算CRC余数。用户需要提供一个多项式比特串和一个填充值来执行CRC计算。
阅读全文