how to convert '\xf0' to 0xf0 ?

Steve Holden steve at holdenweb.com
Fri Dec 12 01:28:50 EST 2008


Looks like you need the struct module. That can convert binary fields of
various lengths into the appropriate Python types, and vice versa.

>>> import struct
>>> struct.unpack("L", '\xf0\xf0\xff\xfe')
(4278186224L,)
>>> struct.unpack("l", '\xf0\xf0\xff\xfe')
(-16781072,)
>>>

regards
 Steve

chengang.beijing at gmail.com wrote:
> Hi,
> 
> ord('\xf0') works and it only works for char. Do you know any way to
> convet
> '\xf0\xf0' and '\xf0\xf0\xff\xfe' to integer?
> 
> 
> Br, Chen Gang
> 
> On Dec 12, 12:40 pm, Steve Holden <st... at holdenweb.com> wrote:
>> chengang.beij... 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/
> 
> --
> http://mail.python.org/mailman/listinfo/python-list
> 


-- 
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