Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Re: Using %x to format number to hex and number of digits

Reply
Thread Tools

Re: Using %x to format number to hex and number of digits

 
 
Tim Chase
Guest
Posts: n/a
 
      11-05-2010
On 11/05/10 13:23, Matty Sarro wrote:
>> I'm currently trying to convert a digit from decimal to hex,
>> however I need the full 4 digit hex form. Python appears to
>> be shortening the form.
>> Example:
>>
>> num = 10
>> num = "%x"%(num)
>> print(num)
>>
>>>> a

>>
>> num = 10
>> num = "%#x"%(num)
>> print(num)
>>
>>>> 0xa

>>
>> I need it to output as 0x0a, and the exercise is requiring
>> me to use %x to format the string. Any help would be
>> appreciated.


Though it feels hokey to me, using

"%#04x" % 10

works for me. The "#" adds the "0x" prefix (the "alternate
form"), the "0" pads with zeros, and the "4" is really "2 places
+ 2 characters for the prefix". So if you want 4 hex characters
+ the 2 prefix characters, you'd use "%#06x". IMHO, this would
make more sense if it didn't take the 2-character prefix into
consideration (being written as "%#02x" for a byte or "%#04x" for
a short), but it's not really a burr in my saddle.

-tkc



 
Reply With Quote
 
 
 
 
Grant Edwards
Guest
Posts: n/a
 
      11-05-2010
On 2010-11-05, Tim Chase <(E-Mail Removed)> wrote:
> On 11/05/10 13:23, Matty Sarro wrote:
>>> I'm currently trying to convert a digit from decimal to hex,
>>> however I need the full 4 digit hex form. Python appears to
>>> be shortening the form.
>>> Example:
>>>
>>> num = 10
>>> num = "%x"%(num)
>>> print(num)
>>>
>>>>> a
>>>
>>> num = 10
>>> num = "%#x"%(num)
>>> print(num)
>>>
>>>>> 0xa
>>>
>>> I need it to output as 0x0a, and the exercise is requiring
>>> me to use %x to format the string. Any help would be
>>> appreciated.

>
> Though it feels hokey to me, using
>
> "%#04x" % 10
>
> works for me.


I think "0x%02x" % 10 is a bit more readable, but it accomplishes the
same thing -- you just don't have to do the mental math to add the
prefix width to the number of desired hex digits in the output.

--
Grant Edwards grant.b.edwards Yow! Quick, sing me the
at BUDAPEST NATIONAL ANTHEM!!
gmail.com
 
Reply With Quote
 
 
 
 
Tim Chase
Guest
Posts: n/a
 
      11-06-2010
On 11/05/10 15:10, Grant Edwards wrote:
> On 2010-11-05, Tim Chase<(E-Mail Removed)> wrote:
>> On 11/05/10 13:23, Matty Sarro wrote:
>>>> I need it to output as 0x0a, and the exercise is requiring
>>>> me to use %x to format the string. Any help would be
>>>> appreciated.

>>
>> Though it feels hokey to me, using
>>
>> "%#04x" % 10
>>
>> works for me.

>
> I think "0x%02x" % 10 is a bit more readable, but it accomplishes the
> same thing -- you just don't have to do the mental math to add the
> prefix width to the number of desired hex digits in the output.


Which, I confess, is what I usually use because I didn't know
about the "#" until this thread, and just made the assumption
that one can get the zero-padding along with the "alternate form"
in my experimentation this afternoon.

So while it _can_ be done with just variants of the "%x"
place-holder (as suggested by the OP's exercise), at least two of
us on the list prefer to explicitly add the "0x" to the beginning.

-tkc



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Re: Using %x to format number to hex and number of digits Chris Rebert Python 1 11-05-2010 07:05 PM
Hex Color Codes - Hex 6 <=> Hex 3 lucanos@gmail.com HTML 10 08-18-2005 11:21 PM
How to escape hex digits in a regular expression!!! aefxx Java 1 12-17-2004 10:12 PM
How to convert an hex string to a Hex number chirs Javascript 3 12-01-2003 10:06 PM
hex(-5) => Futurewarning: ugh, can't we have a better hex than '-'[:n<0]+hex(abs(n)) ?? Bengt Richter Python 6 08-19-2003 07:33 AM



Advertisments