SHT4X

Форк
0
/
crc_mod.py 
30 строк · 895.0 Байт
1
"""
2
MIT License
3
Copyright (c) 2022 Roman Shevchik
4

5
реализация вычисление CRC
6
 8 бит
7
 полином 0x31 (x^8 + x^5 + x^4 + 1)
8
 начальное значение 0xFF
9
 отражение входа: нет
10
 отражение выхода: нет
11
 завершающий XOR: нет
12

13
 Примеры CRC-8:
14
    Входная последовательность: 0x01 0x02 0x03
15
    CRC-8: 0x87
16
    Входная последовательность: 0 1 2 3 4 5 6 7 8 9
17
    CRC-8: 0x52"""
18

19

20
def crc8(sequence: bytes, polynomial: int, init_value: int = 0x00, final_xor = 0x00):
21
    mask = 0xFF
22
    crc = init_value & mask
23
    for item in sequence:
24
        crc ^= item & mask
25
        for _ in range(8):
26
            if crc & 0x80:
27
                crc = mask & ((crc << 1) ^ polynomial)
28
            else:
29
                crc = mask & (crc << 1)
30
    return crc ^ final_xor
31

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.