Je rencontre le problème suivant :
Je récupère un string avec une chaîne de 31 octets, je découpe ce string mais je n'arrive pas à convertir en Décimal, les découpages.
a priori tu rajoute des "0" a ta chaine, ce qui laisse sous entendre qu'elle n'a pas une taille fixe.
ce qui laisse egalement sous entendre que la longueur des data n'est pas figée.
"car il contiend un chiffre binaire", c'est a dire?
il pourrait ou il doit? contenir un et un seul chiffre binaire?
lequel est ce? 8 bits? 16bits? ou plus? poids fort et poids faible?
plusieurs exemples concret de ta chaine aideraient.
eventuelement avec le renvoi en serial.println des decoupages serait un plus.
Mais il y a des méthodes plus simple sans passer par une chaîne de caractères.
En utilisant des décalages et un masque.
Soit
long toto=0x12345678;
si tu fais
unsigned char titi;
titi =(unsigned char) (toto & 0xF);
titi contiendra 8 le résultat du ET entre toto et le masque 0xF. OxF = 0001111 en binaire ce qui ne laisse passer que les 4 bits de poids faibles.
Maintenant si tu veux récupérer les 4 bits précédents
unsigned char tutu;
tutu =(unsigned char) ((toto shr 4) & 0xF);
tutu contiendra 7 le résultat du ET entre toto décalé 4 fois sur la droite et le masque 0xF
Tu peux itérer autant de fois que nécessaire pour découper ton long en petits morceaux en remplaçant le 4 de mon exemple par une variable partant de 0 et s'incrémentant de 4 en 4.
Merci pour ta réponse en effet sur le premier exemple c'est ok par contre, des que je veux décaler
tutu =(unsigned char) ((toto shr 4) & 0xF); j'ai un message d'erreur.