binascii.crc32 results not matching

Tim Peters tim.peters at gmail.com
Fri Dec 9 21:38:03 EST 2005


[Larry Bates]
> I'm trying to get the results of binascii.crc32
> to match the results of another utility that produces
> 32 bit unsigned CRCs.  binascii.crc32 returns
> results in the range of -2**31-1 and 2**21-1. Has
> anyone ever worked out any "bit twiddling" code to
> get a proper unsigned 32 bit result from binascii.crc32?

Just "&" the result with 0xffffffff (a string of 32 1-bits).

> Output snip from test on three files:
>
> binascii.crc32=-1412119273, oldcrc32= 2221277246
> binascii.crc32=-647246320, oldcrc32=73793598
> binascii.crc32=-1391482316, oldcrc32=79075810

Doesn't look like these are using the same CRC algorithms (there are
many distinct ways to compute a 32-bit CRC).  For example,

>>> print -1412119273 & 0xffffffff
2882848023

and that's not equal to 2221277246.  Or you're on Windows, and forgot
to open the files in binary mode.  Or something ;-)



More information about the Python-list mailing list