Контрольная сумма массива байт - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Всем здравствуйте. Подскажите, как подсчитать контрольную сумму массива байт. На С это выглядит так:
где Send - имя массива из 6 байт. На выходе должно получиться два байта контрольной суммы.

Решение задачи: «Контрольная сумма массива байт»

textual
Листинг программы
ushort CRC16(byte[] buf)
{
    ushort i = 0xFFFF;        //Нач.значение CRC-16
    ushort j;
    for (int idx=0; idx<buf.Length; idx++)
    {
        j = (ushort)buf[idx];
        i = crc(i,j);
    }
    return i;
}
 
ushort crc(ushort i, ushort j)
{
    byte n;
    i ^= j;
    for (n=8; n>0; n--)
    {
        if ((i & 0x0001) > 0)
        {
            //Если выдвинутый вправо разряд -1
            i >>= 1;
            i ^= 0xA001;
        }
        else
        {
            i >>= 1;
        }
    }
    return i;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5
Похожие ответы