Conversion 20 bits d'un long
Bonjour,
Je tente de convertir un long en 20 bits.
Voila ce que j'emploie:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| long valeur;
char valeur_binaire[21] = {0};
char* sortie;
valeur = 1; // pour l'exemple
valeur = valeur + 2^20; // ça me permet d'avoir (en theorie...) le bit de poids fort à 1, 19 bits à 0 et 1 bit à 1 (soit ma valeur) et donc d'avoir ma valeur bien sur au moins 20 bits (sinon j'aurais simplement 1 en binaire et non pas 00000000000000000001)
itoa(valeur, valeur_binaire, 2); // j'écris ma valeur en base 2, sur 21 bit (cf remarque supérieure)
sortie = valeur_binaire + 1; // je viens pointer dans le tableau à partir de l'élément 1 et non 0 pour garder 20 bits seulement et virer le 1 du poids fort.
for (byte i = 0; i < 20; i++) {
Serval.println(sortie[i]);
} |
Mais en sortie je n'ai rien à l'affichage (string vide). J'ai affiche "valeur binaire" et j'ai 1 et non 00...001.
Qu'ai je mal fait ?
Merci