php рассчитывается CRC-CCITT (XModem)

Я пытаюсь реализовать проверку CRC-CCITT (XModem) в PHP без успеха. кто нибудь знает как это сделать? Я ожидал, что crc16 («тест») вернется 0x9B06,

0

Решение

Вот простое побитовое вычисление 16-битной CRC XMODEM в C:

#include <stdint.h>

unsigned crc16xmodem_bit(unsigned crc, void const *data, size_t len) {
if (data == NULL)
return 0;
while (len--) {
crc ^= (unsigned)(*(unsigned char const *)data++) << 8;
for (unsigned k = 0; k < 8; k++)
crc = crc & 0x8000 ? (crc << 1) ^ 0x1021 : crc << 1;
}
crc &= 0xffff;
return crc;
}

Это было сгенерировано моим crcany программное обеспечение, которое также генерирует побайтовые и пословные версии для скорости.

Это может быть легко преобразовано в php.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector