C# --> Probleme conversion hexadecimal en binaire

Signaler
Messages postés
19
Date d'inscription
mercredi 18 janvier 2006
Statut
Membre
Dernière intervention
19 juin 2006
-
Messages postés
19
Date d'inscription
mercredi 18 janvier 2006
Statut
Membre
Dernière intervention
19 juin 2006
-
Bonjour, voila, dans mon code je recois de l'hexadecimal que je transforme en binaire, et le probleme est que si j'ai au debut de l'hexa des zéros puis des autres hewadecimaux et bien il me traduit tout sauf les 0!!
EX:
00AEB9 --> 1010111010111001 au lieu de 000000001010111010111001
000000 --> 0 au lieu de 000000000000000000000000
J'ai testé avec la calculatrice de windows et ca me fait pareil!!
Je voudrai savoir si vous connaissez un moyen de rectifier le probleme!!
Merci d'avance.
Amicalement julbuttt!!

8 réponses

Messages postés
63
Date d'inscription
vendredi 6 mai 2005
Statut
Membre
Dernière intervention
11 mai 2006

salut

tu peu voir sur la class Conversion

Coll
Messages postés
19
Date d'inscription
mercredi 18 janvier 2006
Statut
Membre
Dernière intervention
19 juin 2006

ben pour faire la conversion j'utilise deja cette classe!

C'est normal, les 0 qui sont au depart sont inutiles, tout depend apres
de l'utilisation mais si c'est pour des calculs ca ne pose aucun
probleme qu'il n'y ait pas ces 0 devant.
Messages postés
19
Date d'inscription
mercredi 18 janvier 2006
Statut
Membre
Dernière intervention
19 juin 2006

C'est clair que pour des calculs ca ne sert à rien mais cette conversion me sert en réalité pour des trames donc si les 0 ne sont pas convertis et bien ca le fait pas car la trame est éronnée!!
Donc il faut absolument que je résoud le probleme.
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
Salut comment fais tu la conversion, tu passes d'un int vers une chaine !?
Messages postés
19
Date d'inscription
mercredi 18 janvier 2006
Statut
Membre
Dernière intervention
19 juin 2006

Alors dans ma fonction de conversion je recois un string en parametre qui represente une partie de ma trame, ce string je le convertie en hexa puis l'hexa je le convertie en long, ces conversions je l'ai fais avec la classe conversion(Convert......) puis de ce long je le convertie en binaire avec un algo que j'ai ecrit!!
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
C'est pas ce que je pensais sinon je t'aurais proposé cette fonction, mais là je crois que ça ne va pas convenir.

private string GetBinaryString( int val )
{
int mask = 1 << 31; // le bit le plus haut est à 1.
StringBuilder sb = new StringBuilder( );


for ( int i = 0; i < 32; i++ ) // 32 bits
{
if ( ( val & mask ) != 0 )
sb.Append( '1' );
else
sb.Append( '0' );


val <<= 1;


if ( ( i + 1 ) % 8 == 0 ) // Pour faire joli : )
sb.Append( ' ' );
}


return sb.ToString( );
}
Messages postés
19
Date d'inscription
mercredi 18 janvier 2006
Statut
Membre
Dernière intervention
19 juin 2006

Bon j'ai résolu mon probleme avec un algo que j'ai ecrit et qui me permet de rectifier ce probleme de simplification!!
En tout cas, merci pour vos réponses!!