2008/8/26 John Fouhy <[EMAIL PROTECTED]>: > 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)
Actually, that was easier than I thought: class HexInt(int): def __repr__(self): return hex(self) def __str__(self): return str(self) def __add__(self, other): return HexInt(int(self)+int(other)) def __sub__(self, other): return HexInt(int(self)-int(other)) def __mul__(self, other): return HexInt(int(self)*int(other)) def __div__(self, other): return HexInt(int(self)/int(other)) >>> h1 = HexInt(13) >>> h2 = HexInt(21) >>> h1, h2 (0xd, 0x15) >>> h1+h2 0x22 >>> h1-h2 -0x8 >>> h1*h2 0x111 >>> int(h1*h2) 273 >>> h1+16 0x1d Of course, there's obvious problems if you want to mix this with floats :-/ And I'm not sure what you'd gain, since as mentioned, integers are integers, whatever they look like. -- John. _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor