[Python-ideas] Negative hexes

Guido van Rossum guido at python.org
Sun Dec 4 02:17:56 CET 2011


On Sat, Dec 3, 2011 at 5:13 PM, Nick Coghlan <ncoghlan at gmail.com> wrote:

> On Sun, Dec 4, 2011 at 3:07 AM, Antoine Pitrou <solipsis at pitrou.net>
> wrote:
> >> This is because Python's integers are not limited to 32 bits or 64
> bits. If
> >> you read PEP 237, you'll see that this was one of the hardest
> differences
> >> between ints and longs to be resolved. You'd have to include an infinite
> >> number of leading 'F' characters to format a negative long this way...
> >
> > That's a fair point :)
>
> Random thought... could we use the integer precision field to fix
> *that*, by having it indicate the intended number of bytes in the
> integer?
>
> That is, currently:
>
> >>> "{:.4x}".format(31)
> Traceback (most recent call last):
>  File "<stdin>", line 1, in <module>
> ValueError: Precision not allowed in integer format specifier
>
> What if instead that produced:
>
> >>> "{:.4X}".format(31)
> 0000001F
> >>> "{:.4X}".format(-31)
> FFFFFFE1
>

Usually that field is measured in characters/digits, so this should
probably produce FFE1; you'd need {:.8X} to produce FFFFFFE1. This would
then logically extend to binary and octal, in each case measuring
characters/digits in the indicated base.

-- 
--Guido van Rossum (python.org/~guido)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20111203/b5ddbfe3/attachment.html>


More information about the Python-ideas mailing list