Partager via


Comment : convertir un tableau d'octets en int (Guide de programmation C#)

Mise à jour : novembre 2007

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

ToBoolean(array<Byte[], Int32)

char

ToChar(array<Byte[], Int32)

double

ToDouble(array<Byte[], Int32)

short

ToInt16(array<Byte[], Int32)

int

ToInt32(array<Byte[], Int32)

long

ToInt64(array<Byte[], Int32)

float

ToSingle(array<Byte[], Int32)

ushort

ToUInt16(array<Byte[], Int32)

uint

ToUInt32(array<Byte[], Int32)

ulong

ToUInt64(array<Byte[], Int32)

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

Voir aussi

Référence

BitConverter

IsLittleEndian

Types (Guide de programmation C#)