how to convert '\xf0' to 0xf0 ?

Steve Holden steve at holdenweb.com
Fri Dec 12 05:40:32 CET 2008


chengang.beijing at gmail.com wrote:
> '\xf0' is the value read from a binary file, I need to change this
> kinds strings to int for further processing...
> if it is in C, then '\xf0' is an integer and it can be handled
> directly, but in python, it is a string.
> 
> and both int('10',16) and int('0x10',16) returns 16.
> 
> Br, Chen Gang
> 
> On Dec 12, 12:06 pm, Tommy Nordgren <tommy.nordg... at comhem.se> wrote:
>> On Dec 12, 2008, at 4:48 AM, chengang.beij... at gmail.com wrote:
>>
>>> int('\xf0',16) doesn't work, any way to do that?
>>> --
>>> http://mail.python.org/mailman/listinfo/python-list
>>         Should be int('10',16)
>> or int('0x10',16)

It seems that you want the integer value of a character you read in from
a file. Is this correct? Note that '\xf0' is the interpreter's way of
representing a one-character string whose only character has the
hexadecimal value f0, because the actual character is not printable: the
backslash has a special meaning in character string literals.

Any one-character string, however, can be converted to the equivalent
integer value using the ord() function. You can convert the other way
using the chr() function:

>>> ord('A')
65
>>> chr(65)
'A'
>>> ord('\xf0')
240
>>> chr(240)
'\xf0'
>>> hex(240)
'0xf0'
>>>

So just apply the ord() function to the character and you'll get its
integer value!

regards
 Steve
-- 
Steve Holden        +1 571 484 6266   +1 800 494 3119
Holden Web LLC              http://www.holdenweb.com/




More information about the Python-list mailing list