On 2011-11-21, Matthew Lenz <matt...@nocturnal.org> wrote: > Another thing I noticed is that the & and | appear to give the same > result as adding or subtracting 128 from the ordinal value.
Nope, that's only true for some values. If we're limiting ourselves to byte values, then we're talking modulo-256 arithmetic, so: 128 + 128 = 0 128 | 128 = 128 0 - 128 = 128 0 & 0x7f = 0 What's is true is that adding 128 is actullay the same as subtracting 128, and both are the same as exclusive-or 128 (v ^ 128): >>> x = 128 >>> (x + 128) & 0xff 0 >>> (x - 128) & 0xff 0 >>> (x ^ 128) & 0xff 0 >>> x = 0 >>> (x + 128) & 0xff 128 >>> (x - 128) & 0xff 128 >>> (x ^ 128) & 0xff 128 > I'm assuming that isn't coincidence. :) Well, the weighting of the high-order bit in an 8-bit wide binary number is 128, if that's what you're getting at... -- Grant Edwards grant.b.edwards Yow! How's it going in at those MODULAR LOVE UNITS?? gmail.com -- http://mail.python.org/mailman/listinfo/python-list