[Python-ideas] Negative hexes
Guido van Rossum
guido at python.org
Sun Dec 4 02:51:48 CET 2011
On Sat, Dec 3, 2011 at 5:32 PM, MRAB <python at mrabarnett.plus.com> wrote:
> 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.
OTOH I'm not sure what should happen if the number (negative or positive!)
doesn't fit in the precision.
How common is this use case? Personally I'm fine with writing x & (2**N -
1) where N is e.g. 32 or 64.
--
--Guido van Rossum (python.org/~guido)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20111203/7d1147d4/attachment.html>
More information about the Python-ideas
mailing list