On 2011-11-21, Matthew Lenz <[email protected]> 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