在python中将字符串转换为二进制我需要一种方法来获取python中字符串的二进制表示。例如st = "hello world"toBinary(st)有一个简洁的方法来做这个吗?
3 回答
慕姐4208626
TA贡献1852条经验 获得超7个赞
像这样的东西?
>>> 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))'1101000 1100101 1101100 1101100 1101111 100000 1110111 1101111 1110010 1101100 1100100'
BIG阳
TA贡献1859条经验 获得超6个赞
作为一种更加pythonic的方式,您可以先将字符串转换为字节数组,然后使用以下bin
函数map
:
>>> st = "hello world">>> map(bin,bytearray(st))['0b1101000', '0b1100101', '0b1101100', '0b1101100', '0b1101111', '0b100000', '0b1110111', '0b1101111', '0b1110010', '0b1101100', '0b1100100']
或者你可以加入它:
>>> ' '.join(map(bin,bytearray(st)))'0b1101000 0b1100101 0b1101100 0b1101100 0b1101111 0b100000 0b1110111 0b1101111 0b1110010 0b1101100 0b1100100'
请注意,在python3中,您需要为bytearray
函数指定编码:
>>> ' '.join(map(bin,bytearray(st,'utf8')))'0b1101000 0b1100101 0b1101100 0b1101100 0b1101111 0b100000 0b1110111 0b1101111 0b1110010 0b1101100 0b1100100'
你也可以binascii
在python 2中使用模块:
>>> import binascii>>> bin(int(binascii.hexlify(st),16))'0b110100001100101011011000110110001101111001000000111011101101111011100100110110001100100'
hexlify
返回二进制数据的十六进制表示,然后您可以通过指定16作为其基础转换为int,然后将其转换为二进制bin
。
添加回答
举报
0/150
提交
取消