[newbie] String to binary conversion

Emile van Sebille emile at fenx.com
Mon Aug 6 18:45:50 EDT 2012


On 8/6/2012 1:46 PM Mok-Kong Shen said...
>
> If I have a string "abcd" then, with 8-bit encoding of each character,
> there is a corresponding 32-bit binary integer. How could I best
> obtain that integer and from that integer backwards again obtain the
> original string? Thanks in advance.

It's easy to write one:

def str2val(str,_val=0):
     if len(str)>1: return str2val(str[1:],256*_val+ord(str[0]))
     return 256*_val+ord(str[0])


def val2str(val,_str=""):
     if val>256: return val2str(int(val/256),_str)+chr(val%256)
     return _str+chr(val)


print str2val("abcd")
print val2str(str2val("abcd"))
print val2str(str2val("good"))
print val2str(str2val("longer"))
print val2str(str2val("verymuchlonger"))

Flavor to taste.

Emile




More information about the Python-list mailing list