8
votes

Python: Comment puis-je convertir de Binary en Base 64 et en arrière?

Permet de dire que j'ai une valeur binaire: xxx

et veulent le convertir en base64

faire base64.b64decode (0B100) me dit que cela s'attend à une chaîne, pas d'int .... Maintenant, je ne veux pas travailler avec des chaînes.

Alors, si quelqu'un pourrait-il me diriger dans la bonne direction pour la conversion de nombres binaires à BASE64 NUMÉROS? Merci!

= d


2 commentaires

Voulez-vous vraiment convertir en numéros RADIX-64 ou BASE-64 coding? La conversion en numéros RADIX-64 est un calcul mathématique trivial (dans n'importe quelle langue).


Je me demandais simplement si Python a quelque chose de super facile à utiliser.


3 Réponses :


6
votes

Selon la manière dont vous représentez la valeur 0B100 CODE>

>>> import struct
>>> val = 0b100
>>> print struct.pack('I', val).encode('base64')
BAAAAA==


3 commentaires

Ce n'est peut-être pas ce que le questionneur est après. Cela convertira le binaire en décimal, puis la base 64 encoder la représentation décimale. Si vous voulez simplement convertir le numéro en base 64, c'est un peu différent.


Hm? Je suis base64-codant pour la représentation binaire de celui-ci, comme il l'a demandé. (Je lui ai initialement répondu de manière incorrecte en lisant la lecture de sa question, mais je leur ai fixé depuis)


De retour de base64? Utilisez encoded_string.decode ("base64 ') , puis taillez cette chaîne à l'aide de la structure Déballez .



0
votes

Quelle est la taille de votre valeur binaire? Si cela peut s'adapter à un seul octet, vous pouvez utiliser chr code>.

>>> (0b0).__class__
<type 'int'>


1 commentaires

Eh bien, cela pourrait être n'importe où de 8 bits à 512 bits. = \



1
votes

Les littéraux binaires sont juste des entiers python normaux.

>>> bin(int(s.decode('base64')))
<<< '0b100'


0 commentaires