On Wed, 09 Nov 2005 00:42:45 GMT, Ron Adam <[EMAIL PROTECTED]> wrote:
> > >Bengt Richter wrote: >> On 08 Nov 2005 08:07:34 -0800, Paul Rubin <http://[EMAIL PROTECTED]> wrote: >> >> >>>"dcrespo" <[EMAIL PROTECTED]> writes: >>> >>>>>>>hex(255)[2:] >>>> >>>>'ff' >>> >>>'%x'%255 is preferable since the format of hex() output can vary. Try >>>hex(33**33). >> >> >> Not to mention ([EMAIL PROTECTED] deleted ;-) >> >> >>> hex(-255)[2:] >> 'xff' >> >>> hex(-255) >> '-0xff' >> >>> hex(-255&0xff) >> '0x1' >> >> Regards, >> Bengt Richter > >I just happen to have been playing around with converting bases the last >couple of days. (idonowhy) ;-) > It seems to be one of those inevitable things, enjoy it ;-) But you still use '-' + yourconversion(abs(x)) to deal with a negative number. That's what I was [EMAIL PROTECTED] about. You can't see the 'bits' in the way one was used to with the old int values. My answer was a base-complement representation, of which base-16 is a particular case. See http://groups.google.com/group/comp.lang.python/msg/d8324946fcdff8f8 and the code in the second reference from there: http://groups.google.co.uk/group/comp.lang.python/msg/359927a23eb15b3e I only put in characters for up to base 36, but it's a function parameter you can pass, so your digits ought to work if passed. The idea of base-complement is that the first digit is the zero digit for positive numbers and the digit for base-1 for negative numbers. This can be arbitrarily repeated to the left as fill without changing the numeric value. so for base 10 one is 01 and -1 is 99, and for hex that is 01 and FF. For base 2, 01 and 11. Etc. To make a general literal you need a prefix to the data that tells you the base value to use in interpreting the data part. A la 0x01, I proposed 0b<base value in decimal>.<data part> So +1 -1 is 0b2.01 and 0b2.11 or octal 0b8.01 and 0b8.77 or decimal 0b10.01 and 0b10.99 and hex 0b16.01 and 0b16.ff Algorithmically, minus 1 can be represented with a single data digit, but that's a style issue. >Oh yeah, I was thinking of using base62 to generate non-repeating id >strings and wanted to try it out. Hm, what were you going to use those for? [...too tired to revisit the problem, just wanted to comment on the sign/magnitude representation, hope I didn't typo too badly above ;-) ...] Regards, Bengt Richter -- http://mail.python.org/mailman/listinfo/python-list