Python ASCII转二进制

10

有没有内置函数可以将ASCII转换为二进制?

例如,将'P'转换为01010000。

我正在使用Python 2.6.6。

3个回答

17

两个一起怎么样?

bin(ord('P'))
# 0b1010000

1
它开头的0b是什么意思? - Cripto
@Steve,那实际上是无法使用的二进制代码,它只有7个字符,“P”是01010000,但该代码正在删除前导0,仅输出1010000,因此只有7个字符,因此无法使用。 - Devon M

8

您想转换字节还是字符?两者有所不同。

如果您需要字节,则可以使用以下代码:

# Python 2.x
' '.join(bin(ord(x))[2:].zfill(8) for x in u'שלום, עולם!'.encode('UTF-8'))

# Python 3.x
' '.join(bin(x)[2:].zfill(8) for x in 'שלום, עולם!'.encode('UTF-8'))
bin函数将整数转换为二进制数。 [2:] 去掉前导的 0b.zfill(8) 将每个字节填充为 8 位。

0
bin(reduce(lambda x, y: 256*x+y, (ord(c) for c in "Hello world"), 0))

这是为多个字符而设的


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接