Bájttömb átalakítása intre (C# programozási útmutató)
Ez a példa bemutatja, hogyan konvertálhat egy BitConverter bájttömböt int és vissza egy bájtból álló tömbbe az osztály használatával. Előfordulhat, hogy a bájtokból egy beépített adattípust kell konvertálnia, miután például kiolvassa a bájtokat a hálózatról. A példában szereplő ToInt32(Byte[], Int32) metódus mellett az alábbi táblázat az osztály azon metódusait BitConverter sorolja fel, amelyek a bájtokat (bájttömbből) más beépített típusokká konvertálják.
Visszaadott típus | Metódus |
---|---|
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(Bájt[], Int32) |
uint |
ToUInt32(Byte[], Int32) |
ulong |
ToUInt64(Bájt[], Int32) |
Példák
Ez a példa bájttömböt inicializál, megfordítja a tömböt, ha a számítógépes architektúra kis endian (vagyis a legkevésbé jelentős bájtot tárolja először), majd meghívja a ToInt32(Byte[], Int32) metódust a tömb négy bájtjának konvertálásához.int
A ToInt32(Byte[], Int32) második argumentuma a bájtok tömbjének kezdőindexét adja meg.
Feljegyzés
A kimenet a számítógép architektúrájának endianitásától függően eltérhet.
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
Ebben a példában az GetBytes(Int32)BitConverter osztály metódusát úgy hívjuk meg, hogy bájtok int
tömbje legyen.
Feljegyzés
A kimenet a számítógép architektúrájának endianitásától függően eltérhet.
byte[] bytes = BitConverter.GetBytes(201805978);
Console.WriteLine("byte array: " + BitConverter.ToString(bytes));
// Output: byte array: 9A-50-07-0C