Kyle_Katarn a écrit :
Comment est ce que je peux convertir en Delphi un tableau de byte en chaine base 32 ?
|
En delphi, je sais pas mais en pseudo-code C/C++ , chez les trolls, on fait quelque chose comme ça:
// gsBase32Chars, une chaîne contenant ABCDEFGHIJKLMNOPQRSTUVWXYZ234567
// bytes, le tableau à encoder
// len, sa longueur
// word, un unsigned byte
// i, nIndex, des compteurs
// Base32Buf, le résultat
Code :
- for(i = 0, nIndex = 0; i < len ; )
- {
- if (nIndex > 3) {
- word = (bytes[i] & (0xFF >> nIndex));
- nIndex = (nIndex + 5) % 8;
- word <<= nIndex;
- if (i < len - 1) word |= bytes[i + 1] >> (8 - nIndex);
- i++;
- } else {
- word = (bytes[i] >> (8 - (nIndex + 5))) & 0x1F;
- nIndex = (nIndex + 5) % 8;
- if (nIndex == 0) i++;
- }
- Base32Buff += (char) gsBase32Chars[word];
- }
|
Pour les explications et les optimisations, faut demander à un non troll, au copaing taz par exemple (s'il ne trouve pas ça trop compliqué).
Message édité par docmaboul le 04-03-2004 à 13:14:55