Tim Peters <t...@python.org> added the comment:

To answer the old accusation ;-), no, this isn't my wording.  I _always_ 
explain that Python's integer bit operations act as if the integers were stored 
in 2's-complement representation but with an infinite number of sign bits.  
That's all.  That provides insight.

For example, then it's dead obvious that `-1 == ~0` (both an infinite solid 
string of 1 bits); that for any integer `i`, `-1 ^ i == ~i" (both flip each bit 
in `i`); and that for any positive integers `i` and `j` it's necessarily the 
case that `-i ^ -j` is positive (because the infinite strings of sign bits 
cancel out).

The reference manual is under no obligation to explain how to _implement_ this 
illusion, and I don't think it's helpful to try.  People here are struggling to 
explain how to pick a number of bits "big enough" to make it all work out on a 
case by case basis, but the single answer "infinity" is big enough to apply in 
all cases ;-)

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue29710>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to