Тема: расчет CRC16
Показать сообщение отдельно
  #4  
Старый 28.06.2010, 14:22
Hobert Hobert вне форума
Прохожий
 
Регистрация: 15.06.2010
Сообщения: 9
Репутация: 10
По умолчанию

Я по этому примеру и делаю.
crc должен принимать значение $FFFF (данные с вики) ->

Код:
Name  : CRC-16
  Poly  : 0x8005    x^16 + x^15 + x^2 + 1
  Init  : 0xFFFF
  Revert: true
  XorOut: 0x0000
  Check : 0x4B37 ("123456789")
  MaxLen: 4095 байт (32767 бит) - обнаружение
    одинарных, двойных, тройных и всех нечетных ошибок

Но я пробовал и с 0, все равно считает не верно: так как при вычислении КС, ответ приписанный к входным данным, при повторном вычислении, должен возвращать в ответ 0.

Т.е. Вх: F70302640008 КС: 10FD.
А при Вх: F7030264000810FD КС: 00
.
Вот так должна работать программа.

А у меня получается с начальным значением Crc =$FFFF:
Вх: F70302640008 КС:712C
Вх: F70302640008712C КС: 4F55.

С начальным значением CRC = 0:
Вх: F70302640008 КС: F5D5.
Вх: F70302640008F5D5 КС: 28C5.

Еще сейчас пришлю весь код программы.
Ответить с цитированием