Andrew Koenig writes: > An int is a 31-bit integer, INCLUDING sign. One extra bit indicates whether > the integer is really a number or, alternatively, a pointer to the rest of > the representation. > > Now, you may object that implementing this strategy in C will require lots > of shifting and masking. I would have thought so, too. However, every C > implementation of which I am aware puts all but the most trivial data > structures on boundaries of two or more bytes. This fact frees the > LOW-order bit of the integer to indicate whether it is a pointer. I recently mentioned this approach to coaxing an extra bit from an existing structure to Tim, and he pointed out (rightly!) that this only works for machines with byte-addressable memories. On word-addressable memories, there's no chance to coax the extra bit from a pointer at all, and Python still runs on at least one such platform (some Cray thing, IIRC). Otherwise I like the approach. ;-) -Fred -- Fred L. Drake, Jr. <fdrake at acm.org> PythonLabs at Zope Corporation
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4