Int to byte[]

cs_Sobieski
Messages postés
54
Date d'inscription
mardi 22 mars 2005
Statut
Membre
Dernière intervention
13 mars 2007
- 9 juin 2005 à 13:31
eddyminet
Messages postés
5
Date d'inscription
mercredi 12 novembre 2003
Statut
Membre
Dernière intervention
2 mars 2007
- 15 sept. 2007 à 14:33
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

el_teedee
Messages postés
497
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2015
7
9 juin 2005 à 14:06
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
0
Lutinore
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Membre
Dernière intervention
27 octobre 2012
42
9 juin 2005 à 19:03
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
}
0
Lutinore
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Membre
Dernière intervention
27 octobre 2012
42
9 juin 2005 à 19:16
Petite erreur.. faut un decalage de 8 pas de 1...
0
Lutinore
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Membre
Dernière intervention
27 octobre 2012
42
9 juin 2005 à 19:20
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
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eddyminet
Messages postés
5
Date d'inscription
mercredi 12 novembre 2003
Statut
Membre
Dernière intervention
2 mars 2007
3
14 sept. 2007 à 17:10
byte[] mon_tableau_doctets = BitConverter



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