Int to byte[]

Signaler
Messages postés
54
Date d'inscription
mardi 22 mars 2005
Statut
Membre
Dernière intervention
13 mars 2007
-
Messages postés
5
Date d'inscription
mercredi 12 novembre 2003
Statut
Membre
Dernière intervention
2 mars 2007
-
Bonjour,

Je cherche à envoyer un tableau de bytes, mais j'ai des valeurs en int. J'aimerais savoir comment faire d'un int un tableau de bytes (byte[]).

Merci !

8 réponses

Messages postés
497
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2015
6
Lut, je suis en train de buter sur le même problème.



Pour l'instant je me débrouille avec byteVal = System.Convert.ToByte(stringVal);



tiens voilà le code que j'ai trouvé pour convertir un string en byte. Pour int-> Byte ca doit être pareil.



public Byte ConvertStringByte(string stringVal)

{

byte byteVal =0;



try

{

byteVal = System.Convert.ToByte(stringVal);

System.Console.WriteLine("{0} as a byte is: {1}",

stringVal, byteVal);

}

catch (System.OverflowException)

{

System.Console.WriteLine(


"Conversion from string to byte
overflowed.");

}

catch (System.FormatException)

{

System.Console.WriteLine(


"The string is not formatted as a
byte.");

}

catch (System.ArgumentNullException)

{

System.Console.WriteLine(

"The string is null.");

}



return byteVal;

//The conversion from byte to string is always valid.

//stringVal = System.Convert.ToString(byteVal);


//System.Console.WriteLine("{0} as a string is {1}",byteVal, stringVal);

}


Tu pourrais me préciser le rôle de ton programme ? Par simple curiosité. Moi c'est de l'envoi sur port COM.



Sylvain
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
33
Salut..

int x = Int32.MaxValue;
byte[ ] bytes = new byte[ 8 ];

for ( int i = 0; i < 8; i++ )
{
bytes[ i ] = ( byte )x; // Cast
x = x >> 1; // Decalage a droite ou a gauche
}
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
33
Petite erreur.. faut un decalage de 8 pas de 1...
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
33
Oups.. et 4 bytes dans la boucle donc..

int x = 255;
byte[ ] bytes = new byte[ 4 ];

for ( int i = 0; i < 4; i++ )
{
bytes[ i ] = ( byte )x; // Cast
x = x >> 8; // Decalage a droite ou a gauche
}
Messages postés
5
Date d'inscription
mercredi 12 novembre 2003
Statut
Membre
Dernière intervention
2 mars 2007
3
byte[] mon_tableau_doctets = BitConverter



.GetBytes( valeur_a_convertir );
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
33
2 ans après je pense qu'il s'est débrouillé autrement depuis. : )
Messages postés
497
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2015
6
C'est pas faux :p
Messages postés
5
Date d'inscription
mercredi 12 novembre 2003
Statut
Membre
Dernière intervention
2 mars 2007
3
Qui sait ... ;-)