为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

30秒到达战场 2019-08-13 09:37:47
在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'


查看完整回答
反对 回复 2019-08-13
?
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


查看完整回答
反对 回复 2019-08-13
  • 3 回答
  • 0 关注
  • 4844 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信