CODE ( htmlphp):
скопировать код в буфер обмена
function crc16_kermit($string) { $crc = 0; for ( $x=0; $x<strlen( $string ); $x++ ) { $crc = $crc ^ ord( $string[$x] ); for ($y = 0; $y < 8; $y++) { if ( ($crc & 0x0001) == 0x0001 ) $crc = ( ($crc >> 1 ) ^ 0x1021 ); else $crc = $crc >> 1; } } $lb = ($crc & 0xff00) >> 8; $hb = ($crc & 0x00ff) << 8; $crc = $hb | $lb; //$crc = $lb | $hb; return $crc; }
Входные данные hx ( 02030630 )
Тут https://www[dot]lammertbies[dot]nl/comm/[dot][dot][dot]calculation[dot]html
считает правильно, контрольная сумма получается 0x41B3, но при использовании функции выше, я не получаю такого результата.
Так же проверял контрольную сумму здесь ([url ]http://crccalc.com/[/url]), тоже правильно.
Алгоритм : CRC-16/KERMIT
У меня получается 46615. Или это число нужно еще во что то перевести?
Еще класс с гитхаба скачал там 6337 получается ((((Отредактировано автором: 28 Мая, 2018 - 17:17:11)
|