ФорумПрограммированиеPHP для идиотов → Контрольная сумма

Контрольная сумма

  • truth4oll

    Сообщения: 463 Репутация: N Группа: Адекваты

    Spritz 11 марта 2013 г. 8:41

    В документации есть пример вычисления контрольной суммы, как они это сделали?

    0x05d8 = CRC-CCITT (24 24 00 11 13 61 23 45 67 8f ff 50 00)
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 11 марта 2013 г. 8:59, спустя 17 минут 15 секунд


    В документации есть пример вычисления контрольной суммы, как они это сделали?

    0x05d8 = CRC-CCITT (24 24 00 11 13 61 23 45 67 8f ff 50 00)
    руками
    Сапожник без сапог
  • truth4oll

    Сообщения: 463 Репутация: N Группа: Адекваты

    Spritz 11 марта 2013 г. 9:43, спустя 43 минуты 54 секунды

    вдруг кому понадобится
    function crc16($data){
    $crc = 0xFFFF;
    for ($i = 0; $i < strlen($data); $i++){
    $x = (($crc >> 8) ^ ord($data[$i])) & 0xFF;
    $x ^= $x >> 4;
    $crc = (($crc << 8) ^ ($x << 12) ^ ($x << 5) ^ $x) & 0xFFFF;
    }
    return $crc;
    }

    echo crc16(0x24 0x24 0x00 0x11 0x13 0x61 0x23 0x45 0x67 0x8f 0xff 0x50 0x00);

Пожалуйста, авторизуйтесь, чтобы написать комментарий!