CRC 16 бит (полиномиальное 0x1021) Расчет CCITT с начальным значением 0x0000C#

Место общения программистов C#
Ответить
Anonymous
 CRC 16 бит (полиномиальное 0x1021) Расчет CCITT с начальным значением 0x0000

Сообщение Anonymous »

Ну, я почесываю голову и очень близко, чтобы сломать его молотком. Я пытаюсь рассчитать CRC16 бит CCITT, и он не дает мне то, что он должен. Я искал почти все и не знаю, чего мне не хватает.

This is the full packet with last two bytes of CRC calculation


54 A1 4A 03 E7 03 D4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 CA < /p>
< /blockquote>

Пока я добавляю синхронизацию, который составляет 0x54, если я не добавляю синхронизацию, пакет будет < /p>


54 a1 4a 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00. 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 65 cf < /p>
< /blockquote>

Оба значения CRC (64 CA && 65 CF) ошибочны. Я должен получить 72 DC && 99 3F соответственно.private static ushort CRCCalc(byte[] data)
{
ushort wCRC = 0;
for (int i = 1; i < data.Length; i++)
{
wCRC = (ushort)(wCRC ^ (data

Подробнее здесь: https://stackoverflow.com/questions/399 ... lue-0x0000
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»