crc校验码计算小工具
时间: 2023-07-27 16:32:01 浏览: 212
好的,我可以为您提供一个简单的 CRC 校验码计算器。您可以使用以下 Python 代码实现:
```python
def crc_remainder(input_bitstring, polynomial_bitstring, initial_filler):
polynomial_bitstring = polynomial_bitstring.lstrip('0')
len_input = len(input_bitstring)
initial_padding = initial_filler * (len(polynomial_bitstring) - 1)
input_padded_array = list(input_bitstring + initial_padding)
while '1' in input_padded_array[:len_input]:
cur_shift = input_padded_array.index('1')
for i in range(len(polynomial_bitstring)):
input_padded_array[cur_shift + i] = str(int(polynomial_bitstring[i] != input_padded_array[cur_shift + i]))
return ''.join(input_padded_array)[len_input:]
def crc_check(input_bitstring, polynomial_bitstring, check_value):
check_bitstring = crc_remainder(input_bitstring, polynomial_bitstring, '0')
return (check_bitstring == check_value)
```
其中,`input_bitstring` 是要进行 CRC 校验的二进制字符串,`polynomial_bitstring` 是 CRC 多项式的二进制字符串,`initial_filler` 是填充字节。您可以根据需要调整这些参数。例如,如果您想要计算 8 位 CRC 校验码,可以使用以下代码:
```python
input_bitstring = '110101'
polynomial_bitstring = '1001'
initial_filler = '0'
crc_remainder(input_bitstring, polynomial_bitstring, initial_filler)
```
这将输出 `110` 作为校验码。如果您想要验证给定的校验码是否正确,可以使用以下代码:
```python
input_bitstring = '110101'
polynomial_bitstring = '1001'
check_value = '110'
crc_check(input_bitstring, polynomial_bitstring, check_value)
```
这将输出 `True`(代表校验码正确)。
阅读全文