2008/8/26 Py Hex <[EMAIL PROTECTED]>: > When I run this: > >>>> type(hex(12)) > <type 'str'> > > I get a string type back, i.e, '0xC' not 0xC > > On the other hand, if I use 0x with data, Python understands it is hex data > and not a string value. > >>>> e = 0xCD >>>> type(e) > <type 'int'> > > Why does the Hex builtin function in Python return a string ? How can I > convert this string returned by hex builtin function to data with 0x prefixed > ?
If you type 0xC, you get a number. Try it: >>> 0xC 12 '12' is the default python representation of the integer 0xC. Internally, it is (I guess) stored as a 4 byte chunk of memory; that is, a 32-bit long binary. There is _no difference_ between 0xC and 12: >>> 0xC is 12 True The hex() function (and oct() too) provides you with a different string representation from the default. If you want to change python to display integers in hex instead of decimal by default, I can't help you.. (well, maybe you could subclass int, and change __repr__ and __str__ to return hex strings) -- John. _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor