[Python-Dev] Negative long literals (was Re: Does Python need a
'>>>' operator?)
Tim Peters
tim.one@comcast.net
Mon, 10 Jun 2002 09:08:36 -0400
>> I think Beni has a very nice idea here, especially for people who can't
>> visualize 2's-complement (not mentioning Guido by name <wink>).
[Guido]
> In fact it's so subtle that I didn't notice what he proposed. I
> though it had to do with the uppercase of 1xABCD.
>
> Maybe that's too subtle?
In context, it was part of a long thread wherein assorted people griped that
they couldn't visualize what, e.g.,
>>> hex(-1L << 10)
'-0x400L'
>>>
means, recalling that hex() is often used when people are thinking of its
argument as a bitstring. 1xc00 "shows the bits" more clearly even in such
an easy case. In a case like '-0xB373D', it's much harder to visualize the
bits, and this will grow more acute under int-long unification. Right now,
hex(negative_plain_int) shows the bits directly; after unification,
hex(negative_plain_int) will likely have to resort to producing "negative
literals" as hex(negative_long_int) currently does.
> Do we really need this?
No, but I think it would make unification more attractive to people who care
about this sub-issue. The 0x vs 1x idea grew on me the longer I played with
it. Bonus: we could generalize and say that integers beginning with "1"
are negative octal literals <wink>.