A conversão e a manipulação binárias não são usadas com frequência, especialmente com funções suportadas por base64 em python. Você pode usar a funcionalidade bin () com suporte em python> 2.6 para converter entre a representação ASCII.
def a2b(string):
result = ''
for i in xrange(0,len(string)):
temp = bin(ord(string[i]))[2:].zfill(chunkSize)
result += temp
return result
A conversão preencherá o comprimento da representação binária para um tamanho de bloco apropriado (dependendo do tamanho do buffer de transferência ao enviar dados). Por outro lado, a tradução de volta para ASCII é a seguinte;
def b2a(data):
result = ''
base = 2
i = 0
while i < len(data):
chunk = data[i:i+chunkSize]
n = int(chunk,base)
result += chr(n)
i += chunkSize
return result
Isso percorre cada pedaço de 8 bits para converter a string binária em um int via int (x, 2), onde 2 é a base para a conversão e x é a string binária. Cada pedaço tem 8 bits por razões óbvias em relação à representação de caracteres em ASCII. Novamente, o tamanho do bloco usado para converter os dados precisa ser conhecido.