Python:如何从二进制转换为基本64并返回?

可以说我有一些二进制值:Python:如何从二进制转换为基本64并返回?

0b100 

,并希望将其转换为Base64

base64.b64decode(0b100)告诉我,这是期待一个字符串,而不是一个int ....现在,我不不想使用字符串。

那么,谁能指出我在正确的方向转换二进制数到base64数字?谢谢!

= d

回答:

取决于你如何代表的价值0b100

>>> import struct 

>>> val = 0b100

>>> print struct.pack('I', val).encode('base64')

BAAAAA==

这会变成你的价值到本地字节序的4字节的整数,并将该值编码为BASE64。您需要指定数据的宽度,因为base64实际上是用可打印字符表示二进制数据。

您通常可以通过struct的函数将数据编码为一串字节,然后编码为base64。确保在解码时使用相同的数据布局和字节顺序。

回答:

你的二进制值有多大?如果它可以放在一个字节中,那么你可以使用chr

>>> base64.b64encode(chr(255)) 

'/w=='

否则,我认为你必须得到单个字节出来的一些指数的数学和大端或小端排列它们,呼吁chr多次。 (编辑:颜的与struct模块答案是容易:)

另外,我要指出的是,二进制整数语法就是这样,语法。解释者将其视为另一个整数。

>>> (0b0).__class__ 

<type 'int'>

回答:

二进制文字只是普通的Python整数。

>>> 0b100 

<<< 4

>>> 4

<<< 4

只是转换为字符串和Base64编码,它(给你一个字符串,它是“4”的Base64表示)。这种方法没有问题,它是无损和简单的。

>>> s = str(0b100).encode('base64') 

>>> int(s.decode('base64'))

<<< 4

如果你愿意,你可以使用斌为int转换成二进制字符串:

>>> bin(int(s.decode('base64'))) 

<<< '0b100'

以上是 Python:如何从二进制转换为基本64并返回? 的全部内容, 来源链接: utcz.com/qa/262540.html

回到顶部