Partage via


Guide pratique pour convertir un tableau d’octets en valeur int (Guide de programmation C#)

Cet exemple montre comment utiliser la classe BitConverter pour convertir un tableau d’octets en valeur int, puis la reconvertir en tableau d’octets. 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. Outre la méthode ToInt32(Byte[], Int32) de l’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 ToBoolean(Byte[], Int32)
char ToChar(Byte[], Int32)
double ToDouble(Byte[], Int32)
short ToInt16(Byte[], Int32)
int ToInt32(Byte[], Int32)
long ToInt64(Byte[], Int32)
float ToSingle(Byte[], Int32)
ushort ToUInt16(Byte[], Int32)
uint ToUInt32(Byte[], Int32)
ulong ToUInt64(Byte[], Int32)

Exemples

Cet exemple initialise un tableau d’octets, inverse le tableau si l’architecture de l’ordinateur est little-endian (autrement dit, l’octet le moins significatif est stocké en premier), puis appelle la méthode ToInt32(Byte[], Int32) pour convertir quatre octets du tableau en valeur int. Le deuxième argument de ToInt32(Byte[], Int32) spécifie l’index de départ du tableau d’octets.

Notes

La sortie peut varier en fonction du caractère endian de 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 une valeur int en tableau d’octets.

Notes

La sortie peut varier en fonction du caractère endian de l’architecture de votre ordinateur.

byte[] bytes = BitConverter.GetBytes(201805978);
Console.WriteLine("byte array: " + BitConverter.ToString(bytes));
// Output: byte array: 9A-50-07-0C

Voir aussi