Derrick 'dman' Hudson wrote:
Hoops? For example :
print "%x" % long( zlib.crc32( buffer ) )
That seems simple enough to me.
Simple indeed. In fact it's so simple it doesn't work:
print "%x" % long( zlib.crc32('test') )
-278081f4
Dan Bishop wrote: Or if you wanted the old semantics:
def unsigned(n):
return n & 0xFFFFFFFFL
print "%x" % unsigned(zlib.crc32(buffer))
This avoids the FutureWarning, but the PEP mentions that the L-suffix
notation will also be phased out, so I wanted to avoid that in the solution
and that can be done like this:
def unsigned32(n): return n & 4294967295
since the large decimal of 0xffffffff value will automatically be a long.
It seems kind of clunky to have to throw this extra function call into the
mix whenever dealing with 32-bit values. I don't think 32-bit values will
be made obsolete by 64-bit systems for quite a while to come. This
particular update to Python seems a little pie-in-the-sky and un-pragmatic.