python – How to convert string to binary?

python – How to convert string to binary?

Something like this?

>>> st = hello world
>>>  .join(format(ord(x), b) for x in st)
1101000 1100101 1101100 1101100 1101111 100000 1110111 1101111 1110010 1101100 1100100

#using `bytearray`
>>>  .join(format(x, b) for x in bytearray(st, utf-8))
1101000 1100101 1101100 1101100 1101111 100000 1110111 1101111 1110010 1101100 1100100

If by binary you mean bytes type, you can just use encode method of the string object that encodes your string as a bytes object using the passed encoding type. You just need to make sure you pass a proper encoding to encode function.

In [9]: hello world.encode(ascii)                                                                                                                                                                       
Out[9]: bhello world

In [10]: byte_obj = hello world.encode(ascii)                                                                                                                                                           

In [11]: byte_obj                                                                                                                                                                                           
Out[11]: bhello world

In [12]: byte_obj[0]                                                                                                                                                                                        
Out[12]: 104

Otherwise, if you want them in form of zeros and ones –binary representation– as a more pythonic way you can first convert your string to byte array then use bin function within map :

>>> st = hello world
>>> map(bin,bytearray(st))
[0b1101000, 0b1100101, 0b1101100, 0b1101100, 0b1101111, 0b100000, 0b1110111, 0b1101111, 0b1110010, 0b1101100, 0b1100100]
 

Or you can join it:

>>>  .join(map(bin,bytearray(st)))
0b1101000 0b1100101 0b1101100 0b1101100 0b1101111 0b100000 0b1110111 0b1101111 0b1110010 0b1101100 0b1100100

Note that in python3 you need to specify an encoding for bytearray function :

>>>  .join(map(bin,bytearray(st,utf8)))
0b1101000 0b1100101 0b1101100 0b1101100 0b1101111 0b100000 0b1110111 0b1101111 0b1110010 0b1101100 0b1100100

You can also use binascii module in python 2:

>>> import binascii
>>> bin(int(binascii.hexlify(st),16))
0b110100001100101011011000110110001101111001000000111011101101111011100100110110001100100

hexlify return the hexadecimal representation of the binary data then you can convert to int by specifying 16 as its base then convert it to binary with bin.

python – How to convert string to binary?

We just need to encode it.

python – How to convert string to binary?

string.encode(ascii)

Leave a Reply

Your email address will not be published. Required fields are marked *