PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Не получается контрольное значение
dimpase
Отправлено: 28 Мая, 2018 - 17:15:24
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Май 2012  


Помог: 0 раз(а)




CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. function crc16_kermit($string) {
  3.  
  4.    $crc = 0;
  5.    for ( $x=0; $x<strlen( $string ); $x++ ) {
  6.  
  7.      $crc = $crc ^ ord( $string[$x] );
  8.      for ($y = 0; $y < 8; $y++) {
  9.  
  10.         if ( ($crc & 0x0001) == 0x0001 ) $crc = ( ($crc >> 1 ) ^ 0x1021 );
  11.          else                             $crc =    $crc >> 1;
  12.       }
  13.    }
  14.  
  15.    $lb  = ($crc & 0xff00) >> 8;
  16.    $hb  = ($crc & 0x00ff) << 8;
  17.    $crc = $hb | $lb;
  18.    //$crc = $lb | $hb;
  19.  
  20.    return $crc;
  21. }
  22.  


Входные данные 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)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB