Problème switch

Signaler
Messages postés
12
Date d'inscription
samedi 29 avril 2006
Statut
Membre
Dernière intervention
30 avril 2006
-
Messages postés
12
Date d'inscription
samedi 29 avril 2006
Statut
Membre
Dernière intervention
30 avril 2006
-
Bonjours à tous
Pour mon application en c++ je travaille avec de l'hexadecimal et j'utilise un switch
switch(n1)
{
case '0000':
hexa1 = "0";break;
case '0001':
hexa1 = "1";break;
case '0010':
hexa1 = "2";break;
}
Pour 0000 et 0001 ya pas de problème il me trouve le "0" et le "1" par contre pour le 0010 j'ai une erreur et si je change cette valeur par 0001 je n'ai plus d'erreur
Q'est ce qui ne va pas svp ?
Merci d'avance

8 réponses

Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Bé là, faudrait nous dire quelle est le type de ta variable n1
et ce que tu cherches à faire.

if(!Meilleur("Joky")) return ERREUR;<
Messages postés
10
Date d'inscription
samedi 1 février 2003
Statut
Membre
Dernière intervention
1 mai 2006

Salut,

Tu voulais certainement faire kelke chose comme ça.
a+.
int n1 = 0x10;
 int hexa1 = 0x00;
 switch(n1)
 {
 case 0x00: hexa1 = 0;
  break;
 case 0x01: hexa1 = 1;
  break;
 case 0x10: hexa1 = 2;
  break;
 default:
  break;
 };
 return hexa1;
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
22
Si n1 c'est un entier et que tu veux savoir ca valeur en hexa faut faire comme ceci :

switch(n1)
{
    case 0x0001 :
       hexa="1';
       break;
case 0x0002 :
 .......
}
Messages postés
12
Date d'inscription
samedi 29 avril 2006
Statut
Membre
Dernière intervention
30 avril 2006

en faite ce ke j'essaye de faire c d'avoir une textBox avec par exemple 1100 et au momen de cliké sur le bouton il me converti cette valeur en hexadecimal donc j'essaye toute les solutions possible (en c++ ihm), et le problème c'est ke si j'utilise les switch j'en aurai trop a faire...
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
22
Tu n'as qu'a decouper ta chaine de caractere en bloc de 4 caracteres,  chaque de ces blocs correspondra un valeur de 0 à F.
Messages postés
12
Date d'inscription
samedi 29 avril 2006
Statut
Membre
Dernière intervention
30 avril 2006

String *b1 = bit1->Text;
String *b2 = bit2->Text;
String *b3 = bit3->Text;
String *b4 = bit4->Text;
String *b5 = bit5->Text;
String *b6 = bit6->Text;
String *b7 = bit7->Text;
String *b8 = bit8->Text;
String *hexa1 = String::Concat(b1, b2, b3, b4);
String *hexa2 = String::Concat(b5, b6, b7, b8);

int n1=Convert::ToInt32(hexa1);
int n2=Convert::ToInt32(hexa2);
//int a = 0010;

switch(n1)
{
case '0000':
hexa1 = "0";break;
case '0001':
hexa1 = "1";break;
case '0010':
hexa1 = "2";break;
case '0011':
hexa1 = "3";break;
case '0100':
hexa1 = "4";break;
case '0101':
hexa1 = "5";break;
case '0110':
hexa1 = "6";break;
case '0111':
hexa1 = "7";break;
case '1000':
hexa1 = "8";break;
case '1001':
hexa1 = "9";break;
case '1010':
hexa1 = "A";break;
case '1011':
hexa1 = "B";break;
case '1100':
hexa1 = "C";break;
case '1101':
hexa1 = "D";break;
case '1110':
hexa1 = "E";break;
case '1111':
hexa1 = "F";break;
default :
hexa1 = "ERREUR ";break;
}

switch(n2)
{
case 0000:
hexa2 = "0";break;
case 0001:
hexa2 = "1";break;
case 0010:
hexa2 = "2";break;
case 0011:
hexa2 = "3";break;
case 0100:
hexa2 = "4";break;
case 0101:
hexa2 = "5";break;
case 0110:
hexa2 = "6";break;
case 0111:
hexa2 = "7";break;
case 1000:
hexa2 = "8";break;
case 1001:
hexa2 = "9";break;
case 1010:
hexa2 = "A";break;
case 1011:
hexa2 = "B";break;
case 1100:
hexa2 = "C";break;
case 1101:
hexa2 = "D";break;
case 1110:
hexa2 = "E";break;
case 1111:
hexa2 = "F";break;
default :
hexa2 = "ERREUR";break;
}
hexBOX->Text = String::Concat(hexa1, hexa2);

Chaque bit est dans un textbox, je les ai concaténé par paquet de 4 afin davoir 1111 1111, un switch pour le 1er paquet et un switch pour le second, mais voila comme j'ai un programme qui utilise 16 octets il me faudrai trop de switch...
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
22
Utilise un tableau de string. Apres tu fait une boucle for, dans laquelle tu fais une conversion en int de la string suivi du switch (vu que le traitement est le meme dans tout les cas)
Messages postés
12
Date d'inscription
samedi 29 avril 2006
Statut
Membre
Dernière intervention
30 avril 2006

Ok merci laurent1024 je v essayé ;-)
Si quelqu'un à dautres propositions je suis preneur lol
Merci