假设我有一些二进制值:
0b100
我想将其转换为base64编码。
执行base64.b64decode(0b100)
会告诉我它需要一个字符串,而不是一个整数...现在,我不想使用字符串。
那么,有人可以指导我如何将二进制数字转换为base64数字吗?谢谢!
=D
0b100
我想将其转换为base64编码。
执行base64.b64decode(0b100)
会告诉我它需要一个字符串,而不是一个整数...现在,我不想使用字符串。
那么,有人可以指导我如何将二进制数字转换为base64数字吗?谢谢!
=D
根据您如何表示值0b100
>>> import struct
>>> val = 0b100
>>> print struct.pack('I', val).encode('base64')
BAAAAA==
encoded_string.decode('base64')
,然后使用struct的unpack
解析该字符串。 - yan二进制字面量只是普通的 Python 整数。
>>> 0b100
<<< 4
>>> 4
<<< 4
只需将其转换为字符串并进行base64编码(得到一个表示“4”的base64字符串)。这种方法没有任何问题,它是无损和简单的。
>>> s = str(0b100).encode('base64')
>>> int(s.decode('base64'))
<<< 4
>>> bin(int(s.decode('base64')))
<<< '0b100'
你的二进制值有多大?如果它可以适合一个字节,那么你可以使用chr
。
>>> base64.b64encode(chr(255))
'/w=='
chr
。 (编辑:yan的答案使用struct
模块更容易 :))>>> (0b0).__class__
<type 'int'>