in reply to (String::CRC) Re: CRC-16 algorithm
in thread CRC-16 algorithm

Try crc($message,16); because the default is 32 (like the pod says).


MJD says you can't just make shit up and expect the computer to know what you mean, retardo!
I run a Win32 PPM repository for perl 5.6x+5.8x. I take requests.
** The Third rule of perl club is a statement of fact: pod is sexy.

Replies are listed 'Best First'.
(Checking String::CRC) Re: CRC-16 algorithm
by CMonster (Scribe) on May 21, 2003 at 17:28 UTC

    Yes, I forgot to add that. Unfortunately, even with the change, the result is:

    cradcliff% ./crc16-modular.pl 123456789
    CRC16 in decimal: 4535
    CRC16 in hex:
      11b7
    

    ...which doesn't match the 0xBB3D result provided by the on-line calculator. I'm guessing that String::CRC doesn't use the CRC-16 polynomial or some other CRC-16-specific setting.

    I'll check my other algorithm against the on-line calculator. If anyone has algorithmic hints, please post them.

      CRC16 crc = new CRC16(); System.out.println("CRC16 = " + crc.getCRC16("050101")); } public String getCRC16(String input) { byte[] bytes = input.getBytes(); int crc = 0x0000; for (byte b : bytes) { crc = (crc >>> 8) ^ table(crc ^ b) & 0xff; } return Integer.toHexString(crc); }
        anyone explain this