在python中将字符串转换为二进制

在python中将字符串转换为二进制

我需要一种方法来获取python中字符串的二进制表示。例如

st = "hello world"toBinary(st)

有一个简洁的方法来做这个吗?


30秒到达战场
浏览 4845回答 3
3回答

慕姐4208626

像这样的东西?>>> 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阳

作为一种更加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。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python