[Python-ideas] Negative hexes
MRAB
python at mrabarnett.plus.com
Sun Dec 4 02:32:43 CET 2011
On 04/12/2011 01:17, Guido van Rossum wrote:
> On Sat, Dec 3, 2011 at 5:13 PM, Nick Coghlan <ncoghlan at gmail.com
> <mailto:ncoghlan at gmail.com>> wrote:
>
> On Sun, Dec 4, 2011 at 3:07 AM, Antoine Pitrou <solipsis at pitrou.net
> <mailto: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.
>
+1
Not only would that be more consistent, it would also have a use-case.
More information about the Python-ideas
mailing list