I have some bit-twiddling code written in Java which I am trying to port to Python. I'm not getting the same results though, and I think the problem is due to differences between Java's signed byte/int/long types, and Python's unified long integer type. E.g. Java's >>> is not exactly the same as Python's >> operator, and a character coerced to a byte in Java is not the same as ord(char) in Python. (The Java byte is in the range -128...127, I think, while the ord in Python is in 0...255.)
Can anyone point me to some good resources to help me port the Java code to Python? If it helps, the Java code includes bits like this: long newSeed = (seed & 0xFFFFFFFFL) * 0x41A7L; while (newSeed >= 0x80000000L) { newSeed = (newSeed & 0x7FFFFFFFL) + (newSeed >>> 31L); } seed = (newSeed == 0x7FFFFFFFL) ? 0 : (int)newSeed; which I've translated into: newseed = (seed & 0xFFFFFFFF)*0x41A7 while (newseed >= 0x80000000): newseed = (newseed & 0x7FFFFFFF) + (newseed >> 31) seed = 0 if newseed == 0x7FFFFFFF else newseed & 0xFFFFFFFF -- Steven -- http://mail.python.org/mailman/listinfo/python-list