Convertion en base 64

Signaler
Messages postés
19
Date d'inscription
lundi 28 juin 2004
Statut
Membre
Dernière intervention
29 novembre 2005
-
Messages postés
573
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
9 avril 2008
-
Bonjour,

J'aimerais savoir s'il y a une fonction C/C++ pour convertir un "unsigned char*" en un BYTE en base 64.

Merci d'avance.

3 réponses

Messages postés
573
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
9 avril 2008
1
Tu veux plutot dire convertir un unsigned char ecrit en base 64 sur un BYTE ?

Car les données informatiques sont codées en base 2 quelle que soit ta volonté.
Messages postés
19
Date d'inscription
lundi 28 juin 2004
Statut
Membre
Dernière intervention
29 novembre 2005

Oui exact,
Je cherche à convertir une chaîne représentant un nombre en base 64 en un vrai BYTE.
Messages postés
573
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
9 avril 2008
1
Bah,



// Méthode qui fonctionne qqs la base au debuggage non effectué près

BYTE function(BYTE* b, int base)

{

BYTE *pStart = b; // Save start

BYTE byte=0; // Init BYTE

// Reach end string

while (*(b++)); b--;

// Go

int mult = 1;

while (b != pStart )

{

if (*b >= base) return 0xFF; // erreur

byte += *(--b)*mult ;

int mult *= base;

}

return byte;

}



Sinon vu que 64 2^6 1 + sum(2^i, i,0,5), pour la transformation
dans l'autre sens, tu prends 5 octets consécutifs en partant du poids
faible (droite), et tu mets tel quel les résultats des (byte &
0b00011111) dans ton tableau de (unsigned byte*).