Arduino Forum

International => Français => Topic started by: Woxet on Jan 13, 2018, 06:20 pm

Title: Convertisseur binaire vers hexadecimal
Post by: Woxet on Jan 13, 2018, 06:20 pm
Salut à tous !
Comme vous l'avez lu je cherche à faire une conversion d'un String en binaire vers un code hexadécimal.

Le principe de mon code en entier est de récupérer le signal d'une télécommande que je convertis en une chaîne de caractère en binaire (j'ai réussis cette partie). Maintenant je dois justement traduire cette chaîne en un code hexadécimal que j'envoie sur Processing.

J'ai une étape intermédiaire à respecter qui est de convertir le binaire en décimal avec la fonction pow(2,n) puis prendre cette décimal et passer en hexadécimal.

Si vous avez besoin de précisions demandez :)

Merci d'avance pour votre aide !
Title: Re: Convertisseur binaire vers hexadecimal
Post by: J-M-L on Jan 13, 2018, 06:24 pm
- postez déjà votre code (avec les balises)
- donnez un exemple de la string que vous avez en tête et de la représentation que vous souhaitez obtenir
Title: Re: Convertisseur binaire vers hexadecimal
Post by: Woxet on Jan 13, 2018, 06:30 pm
Code: [Select]
String code="" ;         // variable pour la chaine de caractère représentatnt la trame complète (qui peut être de longueur supérieure à 4 bits)
String chaine="";        // variable pour la chaine de caractère sur 4 bits 
String dec="";
double nombre=0;         // variable pour la conversion de la partie interressante du code en décimal (déclaration en type double car obligatoire avec la fonction puissance de 2 : pow(2, nombre) )
int nombreEntier=0;      // variable pour conversion de la variable "nombre" en un nombre décimal entier pour la conversion qui suit en hexadécimal
unsigned long debutImpulsion=0;
unsigned long topTrame=0;
unsigned long lastTopTrame=0;

void setup() {
  Serial.begin(9600);
  pinMode(6, OUTPUT);   
  pinMode(12, OUTPUT);   
  }

void loop()
{
  topTrame = micros();
  lastTopTrame = topTrame;
  if(analogRead(A0)>300) {
  while(micros()-topTrame<=24000) { //Le 24000 correspond à la largeur du signal
    digitalWrite(12, LOW);
    if(analogRead(A0)>950)
      {
      Serial.println("*/");
      }
      else
      {
    if(analogRead(A0)>300) { 
      debutImpulsion = micros(); // on est sur un niveau haut juste après le font montant : on "déclenche le chrono" !
        while (analogRead(A0)>300){
          if(micros()-lastTopTrame>2000) {//Le 1 correspond à la largeur d'une trame
          code = code+"1";
          delay(1);
          lastTopTrame = micros();
          if(micros()-topTrame>24000)
          break;                 
        }
     }
  }
  while(analogRead(A0)<=300) {
      if(micros()-lastTopTrame>2000) {
        if(code.length()!=0){
        code = code+"0";
        delay(1);
        lastTopTrame = micros();
        if(micros()-topTrame>24000)
        break;               
      }
      else{
        topTrame = micros();
     }
    }
  }
  }
  }
  }
  int longueurChaine = code.length();
  if(longueurChaine==8){
  Serial.print("code touche : ");
  Serial.println(code);
  Serial.print ("longueurChaine :");
  Serial.println (longueurChaine);
  }
  for(int i=0; i<=3; i++) {
    chaine = chaine + code[i];
  }

//Partie du code pour la conversion de la chaine en un caractère hexadécimal à intégrer ici

//R reçu par Processing
if (Serial.available())
  {
  int lu = Serial.read();
  Serial.println(lu+"/");
  }
  chaine="";
  code="";
  }
 


Eh bien, admettons que j'obtiennes un code binaire 10100000, dans le code il faudrait par exemple le traduire en 10 (par exemple même si ce n'est pas le bon résultat) puis que ce 10 je le traduise en hexadécimal pour par exemple obtenir un code comme D16 (encore une fois je sais que ce n'est pas le bon résultat).
Title: Re: Convertisseur binaire vers hexadecimal
Post by: J-M-L on Jan 13, 2018, 06:32 pm
en binaire chaque case est une puissance de 2... donc il suffit de parcourir la chaîne de droite à gauche (ou gauche à droite, ça dépend comment vous avez représenté votre nombre - généralement le bit de poids faible est à droite) et quand vous voyez un 1 vous ajoutez à votre nombre la puissance de 2 correspondante à cette position

évitez d'utiliser la classe String...

c'est ridicule de vouloir utiliser un double pour représenter un entier - jusqu'à combien vous compter devoir monter?
Title: Re: Convertisseur binaire vers hexadecimal
Post by: Woxet on Jan 13, 2018, 06:53 pm
en binaire chaque case est une puissance de 2... donc il suffit de parcourir la chaîne de droite à gauche (ou gauche à droite, ça dépend comment vous avez représenté votre nombre - généralement le bit de poids faible est à droite) et quand vous voyez un 1 vous ajoutez à votre nombre la puissance de 2 correspondante à cette position

évitez d'utiliser la classe String...

c'est ridicule de vouloir utiliser un double pour représenter un entier - jusqu'à combien vous compter devoir monter?
Pourquoi ne pas utiliser de String ?
Eh bien, je n'ai pas trop le choix c'est ce qui m'a été imposé :3

Du coup, est-ce qu'il existe une fonction ou quelques lignes de code qui me permettrait d'extraire un caractère donc ici le "1" ou le "0", que je nommerais "n", de ma chaîne puis ensuite utiliser pow(2,n) ?

Personnellement ma chaîne à une longueur de 8 caractères
Title: Re: Convertisseur binaire vers hexadecimal
Post by: J-M-L on Jan 13, 2018, 07:34 pm
Quote
Eh bien, je n'ai pas trop le choix c'est ce qui m'a été imposé :3
par qui ? si c'est votre prof, dites lui de lire ceci (https://hackingmajenkoblog.wordpress.com/2016/02/04/the-evils-of-arduino-strings/) (lisez le aussi :) )

Maintenant il se peut que votre prof ait plutôt en tête une cString, soit un tableau de caractère qui est terminé par un caractère nul '\0'

Si vous persistez à utiliser la classe String - lisez les méthodes de  cette classe  String (https://www.arduino.cc/reference/en/language/variables/data-types/stringobject/) et vous verrez qu'il y en a pour aller extraire une sous chaîne ou une autre pour lire un caractère à un endroit  (mais si vous utilisez un tableau - et en plus vous connaissez sa taille, c'est un simple index dans le tableau)

évitez de faire pow(2,n).. conservez simplement une variable qui à chaque fois que vous vous décalez d'un cran pour lire le caractère suivant est multipliée par 2 et ça construit au fur et à mesure votre puissance (ou utiliser l'opérateur << puisque en binaire quand on décale les bits vers la gauche, on multiplie par 2, donc 3 décalages c'est comme si on multipliait par 23)
Title: Re: Convertisseur binaire vers hexadecimal
Post by: Woxet on Jan 13, 2018, 09:47 pm
évitez de faire pow(2,n).. conservez simplement une variable qui à chaque fois que vous vous décalez d'un cran pour lire le caractère suivant est multipliée par 2 et ça construit au fur et à mesure votre puissance (ou utiliser l'opérateur << puisque en binaire quand on décale les bits vers la gauche, on multiplie par 2, donc 3 décalages c'est comme si on multipliait par 23)
C'est à dire ?
Title: Re: Convertisseur binaire vers hexadecimal
Post by: J-M-L on Jan 13, 2018, 11:10 pm
Code: [Select]

const byte nombreDeBits = 8; // Max 32
unsigned long n = 1;
unsigned long resultat = 0;
char chaine[nombreDeBits+1] = "10101100";

for (byte i = 0; i < nombreDeBits; i++) {
   Serial.print("2 puissance "); Serial.print(i); Serial.print(" = "); Serial.println(n);
   Serial.print("Lecture du bit "); Serial.println(nombreDeBits-1-i);

   // ==============================================
   // des trucs appropriés doivent aller ici pour traiter la chaîne de caractères
   // si le caractère en position (nombreDeBits-1-i) est '0' on fait ????
   // si c'est '1' Alors on ajoute quelque chose de pertinent à resultat
   // ==============================================

   n = 2*n; // ou on peut écrire  n <<= 1; // Bitwise left shift assignment
}
Serial.print("Resultat =  0x"); Serial.println(resultat, HEX);


Merci de travailler sur le bout de code manquant et des poster votre code

Title: Re: Convertisseur binaire vers hexadecimal
Post by: Alain46 on Jan 14, 2018, 01:48 am
C'est à dire ?
On te retourne la question
On ne sait toujours pas ce que tu veu faire

Tu as quoi comme valeur au départ ?
Tu veu obtenitr quoi comme valeur à l'arrivée ?
Faut-il utiliser un algorythme (ou formule magique, ou traitement quelconque, ... appelle ça comme tu veu) pour passer de l'un à l'autre ?

En sachant qu'au préalable un µcontrolleur et le langage C ne connaissent que le binaire
La représentation en hexadécimal ou sous forme de chaine de caratère n'existe que pour le confort de lecture d'un humain

Quote
Eh bien, admettons que j'obtiennes un code binaire 10100000, dans le code il faudrait par exemple le traduire en 10 (par exemple même si ce n'est pas le bon résultat) puis que ce 10 je le traduise en hexadécimal pour par exemple obtenir un code comme D16 (encore une fois je sais que ce n'est pas le bon résultat).
??????????????????
Title: Re: Convertisseur binaire vers hexadecimal
Post by: Woxet on Jan 14, 2018, 09:24 am
On te retourne la question
On ne sait toujours pas ce que tu veu faire

Tu as quoi comme valeur au départ ?
Tu veu obtenitr quoi comme valeur à l'arrivée ?
Faut-il utiliser un algorythme (ou formule magique, ou traitement quelconque, ... appelle ça comme tu veu) pour passer de l'un à l'autre ?

En sachant qu'au préalable un µcontrolleur et le langage C ne connaissent que le binaire
La représentation en hexadécimal ou sous forme de chaine de caratère n'existe que pour le confort de lecture d'un humain
??????????????????
J'ai un poly à ma disposition, dessus j'ai 2 capture d'écran, une qui me montre le développement du code et une autre le résultat final. Au besoin je peux vous les recopier ou indiquez moi de quelle manière je peux vous introduire le poly dans le forum.

De plus, j'ai déja indiqué ce que je voulais obtenir.
Title: Re: Convertisseur binaire vers hexadecimal
Post by: J-M-L on Jan 14, 2018, 09:47 am
Répondez à la question du post #7

Pour savoir comment poster des images et utiliser le forum - vous devriez déjà avoir ou les posts épinglés en haut du forum....
Title: Re: Convertisseur binaire vers hexadecimal
Post by: 68tjs on Jan 14, 2018, 10:08 am
Tu as peut être répondu a la question mais visiblement personne ici n'as compris que tu l'ai fait.

Je suis sans aucun doute de la vieille école mais quand je vois ce type de réponse je n'ai aucune envie de répondre.

Je ne sais pas bien si tu l'a remarqué mais ce n'est pas nous qui sommes à l'origine de la question mais c'est toi le demandeur.

Donc si tu veux des réponses et de l'aide il va falloir y mettre du tien.
Title: Re: Convertisseur binaire vers hexadecimal
Post by: Woxet on Jan 14, 2018, 10:29 am
Le principe de mon code en entier est de récupérer le signal d'une télécommande que je convertis en une chaîne de caractère en binaire (j'ai réussis cette partie). Maintenant je dois justement traduire cette chaîne en un code hexadécimal que j'envoie sur Processing.

J'ai une étape intermédiaire à respecter qui est de convertir le binaire en décimal avec la fonction pow(2,n) puis prendre cette décimal et passer en hexadécimal.
J'ai précisé ici ce que je voulais :3
Désolé si je ne me suis pas montré assez clair ^^'

Répondez à la question du post #7

Pour savoir comment poster des images et utiliser le forum - vous devriez déjà avoir ou les posts épinglés en haut du forum....
Je suis entrain d'essayer de développer la partie que vous m'avez laissé ^^'
Eh bien j'ai lu les forums en rapport mais je n'ai pas trouvé le moyen d'importer des fichiers... :/
Title: Re: Convertisseur binaire vers hexadecimal
Post by: J-M-L on Jan 14, 2018, 10:33 am
Eh bien j'ai lu les forums en rapport mais je n'ai pas trouvé le moyen d'importer des fichiers... :/
il faut lire Bien editer son post pour les nuls (http://forum.arduino.cc/index.php?topic=394754.0) et suivre le lien vers le Tuto international! (http://forum.arduino.cc/index.php/topic,148850.0.html)

n'hésitez pas à poster votre sketch (avec le setup() et la loop() pour que ce soit exécutable quand vous aurez fini

Code: [Select]
const byte nombreDeBits = 8; // Max 32
unsigned long n = 1;
unsigned long resultat = 0;
char chaine[nombreDeBits + 1] = "10101100";

void setup() {
  Serial.begin(115200);

  for (byte i = 0; i < nombreDeBits; i++) {
    Serial.print("2 puissance "); Serial.print(i); Serial.print(" = "); Serial.print(n);
    Serial.print("  -  Lecture du bit "); Serial.println(nombreDeBits - 1 - i);

    // une seule ligne de code manque ici :) pour faire simple

    n = 2 * n; // ou on peut écrire  n <<= 1; // Bitwise left shift assignment
  }
  Serial.print("Resultat =  0x"); Serial.println(resultat, HEX);
  Serial.print("Resultat =  B"); Serial.println(resultat, BIN);
  Serial.print("Chaine   =  B"); Serial.println(chaine);
}

void loop() {}


avec la bonne ligne de code, la console m'affiche

2 puissance 0 = 1  -  Lecture du bit 7
2 puissance 1 = 2  -  Lecture du bit 6
2 puissance 2 = 4  -  Lecture du bit 5
2 puissance 3 = 8  -  Lecture du bit 4
2 puissance 4 = 16  -  Lecture du bit 3
2 puissance 5 = 32  -  Lecture du bit 2
2 puissance 6 = 64  -  Lecture du bit 1
2 puissance 7 = 128  -  Lecture du bit 0
Resultat =  0xAC
Resultat =  B10101100
Chaine   =  B10101100


ça semble pas mal :)
Title: Re: Convertisseur binaire vers hexadecimal
Post by: Woxet on Jan 14, 2018, 10:45 am
Merci beaucoup J-M-L pour ton aide, je vais essayer de ce pas ! Et merci aussi de m'avoir dirigé vers le forum international, c'est le seul que j'ai pas lu ^^' Maintenant je sais comment mettre des images merci beaucoup !

Donc voici les captures d'écrans que mon prof m'a donné afin que je développe mon code, puis le résultat final que je dois avoir sur Arduino une fois "optimisé" si je peux dire ^^
Title: Re: Convertisseur binaire vers hexadecimal
Post by: J-M-L on Jan 14, 2018, 10:46 am
il faut quand même la bonne ligne de code... je ne vais pas l'écrire pour vous :)
Title: Re: Convertisseur binaire vers hexadecimal
Post by: Woxet on Jan 14, 2018, 11:51 am
Hier, j'ai essayé de développer avec la fonction pow(2,n), ce programme a un petit problème :3 Donc, s'il vous plaît, dites moi juste si il peut être corrigeable et donc donc optimisable, sinon ne vous embêtez pas et laissez tomber ;)

Code: [Select]
char incomingByte = "";   // for incoming serial data
double n0 = 0;
double n1 = 0;
double n2 = 0;
double n3 = 0;
double n4 = 0;
double n5 = 0;
double n6 = 0;
double n7 = 0;
double n8 = 0;

void setup()
{
  Serial.begin(9600);     // opens serial port, sets data rate to 9600 bps
}

void loop()
{     
        if (Serial.available()>0) // send data only when you receive data:
          {
          incomingByte = Serial.read(); // read the incoming byte:
          Serial.println(incomingByte);
          if(incomingByte.substring(8,9)=="")
            {
            n0 = pow(2,0);
            Serial.println(n0);
            }
          else
            {
            n0 = 0;
            }
          if(incomingByte.substring(7,8)==49)
            {
            n1 = pow(2,1);
            Serial.println(n1);
            }
          else
            {
            n1 = 0;
            }
          if(incomingByte.substring(6,7)==49)
            {
            n2 = pow(2,2);
            Serial.println(n2);
            }
          else
            {
            n2 = 0;
            }
          if(incomingByte.substring(5,6)==49)
            {
            n3 = pow(2,3);
            Serial.println(n3);
            }
          else
            {
            n3 = 0;
            }
          if(incomingByte.substring(4,5)==49)
            {
            n4 = pow(2,4);
            Serial.println(n4);
            }
          else
            {
            n4 = 0;
            }
          if(incomingByte.substring(3,4)==49)
            {
            n5 = pow(2,5);
            Serial.println(n5);
            }
          else
            {
            n5 = 0;
            }
          if(incomingByte.substring(2,3)==49)
            {
            n6 = pow(2,6);
            Serial.println(n6);
            }
          else
            {
            n6 = 0;
            }
          if(incomingByte.substring(1,2)==49)
            {
            n7 = pow(2,7);
            Serial.println(n7);
            }
          else
            {
            n7 = 0;
            }
         //if(incomingByte.substring(0,1)==49)
            {
            n8 = pow(2,8);
            Serial.println(n8);
            }
          else
            {
            n8 = 0;
            }
         }
}
Title: Re: Convertisseur binaire vers hexadecimal
Post by: J-M-L on Jan 14, 2018, 12:04 pm
c'est corrigeable - suffit de tout re-écrire :)

par exemple quel est le type de incomingByte et donc quand vous essayez de faire
Code: [Select]
incomingByte.substring(8,9)que pensez vous que le compilo va dire?
Title: Re: Convertisseur binaire vers hexadecimal
Post by: TTTTT on Jan 14, 2018, 12:32 pm
vite comme ça je dirais de chercher sur google et essayer des fonctions en langage C qui converti à ta place.. style binary to hex c function
Title: Re: Convertisseur binaire vers hexadecimal
Post by: Woxet on Jan 14, 2018, 01:55 pm
c'est corrigeable - suffit de tout re-écrire :)

par exemple quel est le type de incomingByte et donc quand vous essayez de faire
Code: [Select]
incomingByte.substring(8,9)que pensez vous que le compilo va dire?
Théoriquement, ce code est censé encadrer un caractère (donc soit un 1 ou un 0) puis il le met dans une variable n puis il le met à la puissance 2. Après il aurait fallut que je le modifie pour qu'il fasse la somme de tout pour obtenir la valeur décimale de la chaîne entrante.
Title: Re: Convertisseur binaire vers hexadecimal
Post by: J-M-L on Jan 14, 2018, 02:15 pm
Quote
Théoriquement
... il pourrait aussi servir à générer des bitcoins et séquencer l'ADN... en pratique il ne le fait pas - ça ne compile même pas, n'est-ce pas? vous avez des erreurs du genre
error: request for member 'substring' in 'incomingByte', which is of non-class type 'char'
     if (incomingByte.substring(8, 9) == "")


pour pouvoir utiliser la méthode substring() il faut que la variable sur laquelle vous appliquez l'appel soit du bon type - ici donc il faudrait que ce soit une instance de la classe String - hors c'est juste un seul caractère tout seul (type char)... donc zéro chance pour que ça fonctionne...

essayez donc de trouver la ligne qui manque dans mon code.

--> comment lire un des caractères dans mon tableau chaine par exemple celui à la position 2 ou 3 ou x ?
--> comment comparer ce caractère obtenu avec le caractère 1 (ASCII) par exemple?
--> que faire pour résultat si on a trouvé un '1' ?


Title: Re: Convertisseur binaire vers hexadecimal
Post by: Woxet on Jan 17, 2018, 11:45 pm
Bonjour bonjour,

J'ai eu d'autres projets durant la semaine, je me suis réintéressé au code et j'ai trouvé la solution !!!!

Code: [Select]
const byte nombreDeBits = 8; // Max 32
unsigned long n = 1;
unsigned long resultat = 0;
char chaine[nombreDeBits + 1] = "10101100";

void setup() {
  Serial.begin(9600);

  for (byte i = 0; i < nombreDeBits; i++) {
    Serial.print("2 puissance "); Serial.print(i); Serial.print(" = "); Serial.print(n);
    Serial.print("  -  Lecture du bit "); Serial.println(nombreDeBits-i);

    // une seule ligne de code manque ici :) pour faire simple
    resultat = resultat + (chaine[7-i]-48)*n;
 
    n = 2 * n; // ou on peut écrire  n <<= 1; // Bitwise left shift assignment
  }
  Serial.print("Resultat =  0x"); Serial.println(resultat, HEX);
  Serial.print("Resultat =  B"); Serial.println(resultat, BIN);
  Serial.print("Chaine   =  B"); Serial.println(chaine);
}

void loop() {}


Ce qui fait donc que j'ai rajouté la ligne
Code: [Select]
resultat = resultat + (chaine[7-i]-48)*n;

Du coup, J-M-L est-ce bien la ligne que vous avez développé ?
Title: Re: Convertisseur binaire vers hexadecimal
Post by: J-M-L on Jan 18, 2018, 03:39 am
Oui, ça devrait le faire... (au lieu de -48 il faudrait écrire -'0' pour la lisibilité)

on peut faire plus efficace
Code: [Select]
if (chaine[7-i] == '1') resultat+=n;
Title: Re: Convertisseur binaire vers hexadecimal
Post by: Woxet on Jan 18, 2018, 12:04 pm
J'ai un léger souci... Voici mon code, lorsque j'introduis le convertisseur

Code: [Select]
  String code = ""; // variable pour la chaine de caractère représentant la tramec omplète(qui peut être de longueur supérieure à 4 bits)
  //String chaine=""; // variable pour la chaine de caractère
  //doublenombre=0; // variable pour la conversion de la partie interressante du code en décimal(déclaration en type double car obligatoire avec la fonction puissance de 2 : pow(2,nombre))
  //intnombreEntier=0; // variable pour conversion de la variable "nombre" en un nombre décimal entier pour la conversion qui suit en hexadécimal
  int lu = Serial.read(); // variable pour la réinitialisation de Processing (caractère reçu : "-" ou "R")
  unsigned long n=1;
  unsigned long resultat=0;
  unsigned long debutImpulsion=0;
  unsigned long topTrame=0;
  unsigned long lastTopTrame=0;
  const byte longueurChaine = 10; //Max 32
  char chaine[longueurChaine + 1] = code;

void setup(){Serial.begin(9600);}

void loop(){
  topTrame = micros();
  lastTopTrame = topTrame;
  if(analogRead(A0)>300){
    while(micros()-topTrame <=24000){ // Le 24000 correspond à la largeur du signal
      if(analogRead(A0)<950){
        if(analogRead(A0)>300){
          debutImpulsion=micros(); // On est sur un niveau haut juste après le front montant : on "déclenche le chrono"!
          while(analogRead(A0)>300){
            if(micros()-lastTopTrame>1500){ // Le 1500 correspond à la largeur d'une trame
              code = code + "1";
              delay(1);
              lastTopTrame=micros();
            if(micros()-topTrame>24000)
              break;
            }
          }
        }
        while(analogRead(A0)<=300){
          if(micros()-lastTopTrame>1500){
            if(code.length()!=0){ // Sécurité pour ne pas commencer la chaîne binaire par 0
              code = code + "0";
              delay(1);
              lastTopTrame=micros();
            if(micros()-topTrame>24000)
              break;
            }
          else{topTrame=micros();}
          }
        }
      }
      else{Serial.println("*/");}
    }
  }
  if(longueurChaine == 10){
    for(byte i=0; i<longueurChaine; i++){ // Partie du code pour la conversion de la chaine en un caractère hexadécimal
      if (chaine[longueurChaine + 1 - i] == '1') resultat+=n;{
        n=2*n;//ou on peut écrire n<<=1; //Bitwise left shift assignment
      }
    }
    Serial.print("Resultat = ");Serial.println(resultat);
    Serial.print("Resultat = 0x");Serial.println(resultat, HEX);
  }
  if(Serial.available()>0){Serial.println(lu + " /");} // "R" ou "-" reçu de Processing
  chaine[11] = "";
  code = "";
  lu = "";
  delay(000);
}


Arduino me met le message d'erreur "array must be initialized with a brace-enclosed initializer" pour cette ligne
Code: [Select]
char chaine[longueurChaine + 1] = code;

Comment puis-je corriger ceci sans que ça influe sur tout le code ?
Title: Re: Convertisseur binaire vers hexadecimal
Post by: J-M-L on Jan 18, 2018, 12:13 pm
Je vous ai dit de ne pas utiliser la classe String...vous avez lu ce que j'ai posté plus haut au post #5 ?

 ne prenez que des cstring, un tableau de char terminé par '\0' ou dans votre cas comme ce que vous voulez c'est juste mémoriser des caractères juste un tableau de caractères et Au lieu de faire
Code: [Select]
if(micros()-lastTopTrame>1500){ // Le 1500 correspond à la largeur d'une trame
              code = code + "1";
...
vous mettez le caractère '1' dans le tableau au bon endroit (la prochaine case libre)- idem pour les '0'
Title: Re: Convertisseur binaire vers hexadecimal
Post by: Woxet on Jan 18, 2018, 12:21 pm
Ceci fait partis du code de base que j'ai reçu, je ne veux donc pas trop m'étendre pour éviter de me perdre voyez vous ^^'
Title: Re: Convertisseur binaire vers hexadecimal
Post by: J-M-L on Jan 18, 2018, 12:31 pm
Reçu de qui?
Title: Re: Convertisseur binaire vers hexadecimal
Post by: Woxet on Jan 18, 2018, 07:14 pm
Mon professeur ^^
Title: Re: Convertisseur binaire vers hexadecimal
Post by: J-M-L on Jan 18, 2018, 11:45 pm
Et donc vous lui avez fait lire le document sur la classe String?