Comment : convertir un tableau de byte en int (Guide de programmation C#)
Cet exemple indique comment utiliser la classe BitConverter pour convertir un tableau d'octets en int, et inversement.Vous devrez peut-être convertir des octets en un type de données intégré après avoir lu les octets sur le réseau, par exemple.Outre la méthode ToInt32(array<Byte[], Int32) décrite dans cet exemple, le tableau suivant répertorie les méthodes dans la classe BitConverter qui convertissent des octets (d'un tableau d'octets) en d'autres types intégrés.
Type retourné |
Méthode |
---|---|
bool |
|
char |
|
double |
|
short |
|
int |
|
long |
|
float |
|
ushort |
|
uint |
|
ulong |
Exemple
Dans cet exemple, un tableau d'octets est initialisé puis inversé en cas d'architecture avec primauté des octets de poids faible (autrement dit, l'octet le moins significatif est stocké en premier), puis la méthode ToInt32(array<Byte[], Int32) est appelée pour convertir quatre octets du tableau en int (nombre entier).Le deuxième argument de ToInt32(array<Byte[], Int32) spécifie l'index de début du tableau d'octets.
[!REMARQUE]
La sortie peut différer selon l'ordre de primauté des octets utilisé dans l'architecture de votre ordinateur.
byte[] bytes = { 0, 0, 0, 25 };
// If the system architecture is little-endian (that is, little end first),
// reverse the byte array.
if (BitConverter.IsLittleEndian)
Array.Reverse(bytes);
int i = BitConverter.ToInt32(bytes, 0);
Console.WriteLine("int: {0}", i);
// Output: int: 25
Dans cet exemple, la méthode GetBytes(Int32) de la classe BitConverter est appelée pour convertir un int en un tableau d'octets.
[!REMARQUE]
La sortie peut différer selon l'ordre de primauté des octets utilisé dans l'architecture de votre ordinateur.
byte[] bytes = BitConverter.GetBytes(201805978);
Console.WriteLine("byte array: " + BitConverter.ToString(bytes));
// Output: byte array: 9A-50-07-0C