Press "Enter" to skip to content

C# Convertire numeri in array di byte

Quando lavoravo in C non c’era alcun problema a scrivere su un file binario un intero o un altro valore trasformandolo in un array di byte, bastava una cosa di questo tipo:

char bytes[5] = (char *)myinteger;

Ok, non è proprio preciso ma ci assomiglia 😀 scusate ma è un po’ che non lo uso quindi a memoria non è facile. In .NET invece dove le tipizzazioni e il codice managed rendono a volte le cose complicate, visto che questo tipo di operazione non è quotidiana mi dimentico sempre come si fa, pertanto lo scrivo:

int val = 0x10008000;
byte[] bar = BitConverter.GetBytes(val);
File.WriteAllBytes("test.bin", bar);

Il BitConverter che forse sarebbe stato più simpatico si chiamasse ByteConverter, permette di convertire in un array di Byte vari tipi di dati.

L’utilità, come si può vedere dal codice qui sopra è quella di scrivere su un file binario il contenuto di una variabile. Ricordo che ci sono ovviamente strumenti più moderni e più adatti, la Serializzazione binaria ad esempio ma quando serve una cosa veloce, anche questo può aiutare.