Это пример CRC смещения влево. Байт данных XOR связан с старшим байтом CRC. Чтобы выполнить поиск в таблице (индексировать массив), результат должен быть смещен вправо, или сначала может быть смещен байт старшего разряда CRC, а затем XOR с байтом данных для получения нового промежуточного байта старшего разряда. CRC, то это должно быть циклировано 8 раз, чтобы получить результат циклирования CRC 8, или это может быть сделано заранее для всех 256 возможных 8-битных значений, чтобы сгенерировать таблицу, и можно использовать поиск по таблице. вместо того, чтобы ездить на велосипеде 8 раз. После этого цикла младший байт необходимо будет сдвинуть влево, чтобы вы получили код, показанный на рисунке.
Сдвиг влево CRC аналогичен выполнению длинного ручного деления в двоичном коде с использованием полинома CRC в качестве делителя и данных в качестве длинного дивиденда, за исключением того, что вместо вычитания используется XOR, а последний остаток - CRC , Оказывается, что одновременное выполнение XOR 8 битов данных (дивидендов) не влияет на результат, поскольку каждый факторный бит основан только на старшем значащем бите полинома CRC и текущем старшем значащем бите рабочего дивиденда (данных ), что позволяет оптимизировать использование таблицы.