On 2024-10-01 at 09:09:07 +1000, Chris Angelico via Python-list <python-list@python.org> wrote:
> On Tue, 1 Oct 2024 at 08:56, Grant Edwards via Python-list > <python-list@python.org> wrote: > > > > On 2024-09-30, Dan Sommers via Python-list <python-list@python.org> wrote: > > > > > In Common Lisp, integers can be written in any integer base from two > > > to thirty six, inclusive. So knowing the last digit doesn't tell > > > you whether an integer is even or odd until you know the base > > > anyway. > > > > I had to think about that for an embarassingly long time before it > > clicked. > > The only part I'm not clear on is what identifies the base. If you're > going to write numbers little-endian, it's not that hard to also write > them with a base indicator before the digits [...] In Common Lisp, you can write integers as #nnR[digits], where nn is the decimal representation of the base (possibly without a leading zero), the # and the R are literal characters, and the digits are written in the intended base. So the input #16fFFFF is read as the integer 65535. You can also set or bind the global variable *read-base* (yes, the asterisks are part of the name) to an integer between 2 and 36, and then anything that looks like an integer in that base is interpreted as such (including literals in programs). The literals I described above are still handled correctly no matter the current value of *read-base*. So if the value of *read-base* is 16, then the input FFFF is read as the integer 65535 (as is the input #16rFFFF). (Pedants may point our details I omitted. I admit to omitting them.) IIRC, certain [old 8080 and Z-80?] assemblers used to put the base indicator at the end. So 10 meant, well, 10, but 10H meant 16 and 10b meant 2 (IDK; the capital H and the lower case b both look right to me). I don't recall numbers written from least significant digit to most significant digit (big and little endian *storage*, yes, but not the digits when presented to or read from a human). -- https://mail.python.org/mailman/listinfo/python-list