Aracılığıyla paylaş


Bayt dizisini int'e dönüştürme (C# Programlama Kılavuzu)

Bu örnekte, bir bayt dizisini int ve bir bayt dizisine geri dönüştürmek için BitConverter sınıfını nasıl kullanacağınız gösterilmektedir. Örneğin, ağdan baytları okuduktan sonra baytlardan yerleşik bir veri türüne dönüştürmeniz gerekebilir. Örnekteki ToInt32(Byte[], Int32) yöntemine ek olarak, aşağıdaki tabloda BitConverter sınıfında baytları (bayt dizisinden) diğer yerleşik türlere dönüştüren yöntemler listelenmiştir.

Döndürülen tür Yöntem
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)

Örnekler

Bu örnek bir bayt dizisi başlatır, bilgisayar mimarisi küçük endian ise diziyi tersine çevirir (yani, önce en az önemli bayt depolanır) ve ardından dizideki dört baytı bir intdönüştürmek için ToInt32(Byte[], Int32) yöntemini çağırır. toInt32(Byte[], Int32) için ikinci bağımsız değişken bayt dizisinin başlangıç dizinini belirtir.

Uyarı

Çıkış, bilgisayarınızın mimarisinin son durumuna bağlı olarak farklılık gösterebilir.

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: {i}");
// Output: int: 25

Bu örnekte, bir int bayt dizisine dönüştürmek için BitConverter sınıfının GetBytes(Int32) yöntemi çağrılır.

Uyarı

Çıkış, bilgisayarınızın mimarisinin bayt sırasına bağlı olarak farklılık gösterebilir.

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

Ayrıca bkz.