Rohit wrote: > As part of a proprietary socket based protocol I have to convert a > string of length 10, > > say, "1234567890" > > to send it as 5 characters such that their hex values are > > 0x21 0x43 0x65 0x87 0x09 > > (Hex value of each character is got by transposing two digits at a > time) > > How can I do this in python? I would like the result to be available > as a string since I am concatenating it to another string before > sending it out. > > Thanks, > Rohit > For a horrendously obscure version, try:
def mangle(digits): length = (len(digits) + 1) >> 1 v = int(digits, 16) mask = int('0F' * length, 16) smunch = (v ^ (v >> 4)) & mask swapped = v ^ (smunch | (smunch << 4)) return ''.join(chr(255 & (swapped >> (8 * n))) for n in reversed(range(length))) --Scott David Daniels [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list