Bonjour,
Je tente de convertir un long en 20 bits.
Voila ce que j'emploie:
Mais en sortie je n'ai rien à l'affichage (string vide). J'ai affiche "valeur binaire" et j'ai 1 et non 00...001.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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]); }
Qu'ai je mal fait ?
Merci
Partager