chengang.beij...@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...@comhem.se> wrote: >> On Dec 12, 2008, at 4:48 AM, chengang.beij...@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