Earn More by Sharing What You Love
Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Tim Corey
9m 43s
İkili sayılar, bilgisayar biliminin temel bir parçasıdır ve C# 'ta bunlarla çalışmayı anlamak, düşük seviye işlemleri, bit düzeyinde manipülasyonları ve verimli depolamayı yönetmek için önemlidir. Bu makalede, Tim Corey'nin Binary in C#: Storing and Displaying Binary Values in 10 minutes or less videosunu takip ederek, C# dilinde ikili değerleri depolama ve görüntüleme ile ilgili ana kavramları ele alacağız.
Tim, bu konuyu özlü fakat detaylı bir şekilde açıklayarak anlamayı kolaylaştırıyor. Şimdi onun açıklamasını adım adım inceleyelim ve C#'da ikili değerlerin nasıl çalıştığını keşfedelim.
Tim, temel soruya değinerek başlıyor: C#'ta ikili bir sayıyı nasıl depolarız? Binary sayılar, 0b101 gibi, 2 tabanlı değerleri temsil eder ve tamsayı değişkenlerine kaydedilir.
Tim, bir ikili değeri depolamak için aşağıdaki söz dizimini göstermektedir:
int binaryValue = 0b101; // Represents the decimal number 5Dim binaryValue As Integer = &B101 ' Represents the decimal number 5Burada, 0b, takip eden rakamların binary sayı olarak yorumlanmasını söyleyen bir ön ektir. Tim, 0b101'in ondalık gösterimde 5'e eşdeğer olduğunu vurgular.
Ayrıca, ön ek gösteren sıfırların eklenmesi (örneğin, 0b00000101) değeri değiştirmez, diye not eder. Sistem, bu fazladan sıfırların sayısal bir önemi olmadığından, hala bunu 5 olarak yorumlar.
İkili bir değeri depoladıktan sonra, bir sonraki adım onu görüntülemektir. Tim ilginç bir davranışı belirtir: İkili olarak saklanan bir değeri yazdırdığınızda, C# bunu varsayılan olarak ondalık sayıya dönüştürür.
Örneğin:
Console.WriteLine($"Binary value is: {binaryValue}");
// Outputs: Binary value is: 5Console.WriteLine($"Binary value is: {binaryValue}")
' Outputs: Binary value is: 5Her ne kadar binaryValue, 0b101 olarak saklanmış olsa da, konsol 5'i gösterir. Tim, C#'ın varsayılan olarak sayısal değerleri gösterirken 10 tabanı kullandığını açıklar.
Değerin ikili formatını görmek için bir dönüşüm gereklidir.
Tim, bir tamsayıyı ikili bir dize olarak biçimlendirmenin basit bir yolunu tanıtıyor:
string binaryString = Convert.ToString(binaryValue, 2);
Console.WriteLine($"Binary representation: {binaryString}");
// Outputs: Binary representation: 101Dim binaryString As String = Convert.ToString(binaryValue, 2)
Console.WriteLine($"Binary representation: {binaryString}")
' Outputs: Binary representation: 101O, Convert.ToString(value, 2) ile bir tamsayıyı sanki binary temsilini bir diziye dönüştürüyor gibi açıklar. Bu şekilde, eğer 0b101 saklarsanız, konsol artık doğru bir şekilde 101 yerine 5'i gösterecektir.
Tim daha sonra ikili sayılar gösterildiğinde sıkça ortaya çıkan bir sorunu ele alır: önde gelen sıfırlarla tutarlı bir şekilde formatlamak. Birçok durumda, binary bir sayının 8-bit formatta görünmesini isteriz (örneğin, sadece 101 yerine 00000101).
Bunu PadLeft kullanarak nasıl başaracağımızı açıklar:
string formattedBinary = binaryString.PadLeft(8, '0');
Console.WriteLine($"Formatted binary: {formattedBinary}");
// Outputs: Formatted binary: 00000101Dim formattedBinary As String = binaryString.PadLeft(8, "0"c)
Console.WriteLine($"Formatted binary: {formattedBinary}")
' Outputs: Formatted binary: 00000101Burada, PadLeft(8, '0'), binary dizenin her zaman en az 8 karakter uzunluğunda olmasını sağlar, eksik kalan boşlukları sıfırlarla doldurur. Bu, bayt büyüklüğündeki ikili değerlerle çalışırken özellikle faydalıdır.
Tim, '0' etrafındaki tek tırnakların gerektiğini çünkü PadLeft karakterlerle çalıştığını, dizelerle değil, açıklığa kavuşturur.
Tim'in yaptığı diğer önemli bir nokta, binary temsilini elde etmek için sayıları binary formatında (0b notasyonu) girmenize gerek olmadığınıdır.
Örneğin, standart bir ondalık sayıyı ikili sayı sistemine dönüştürebilirsiniz:
int decimalNumber = 12;
string binaryRepresentation = Convert.ToString(decimalNumber, 2);
Console.WriteLine($"Binary equivalent of {decimalNumber} is {binaryRepresentation}");
// Outputs: Binary equivalent of 12 is 1100Dim decimalNumber As Integer = 12
Dim binaryRepresentation As String = Convert.ToString(decimalNumber, 2)
Console.WriteLine($"Binary equivalent of {decimalNumber} is {binaryRepresentation}")
' Outputs: Binary equivalent of 12 is 1100Burada, sayı 12 ondalık bir tamsayı olarak saklanır, ancak dönüştürüldüğünde, binary olarak doğru bir şekilde 1100 çıktısı verir.
Tim, bu tekniğin hata ayıklama ve sayıların bit düzeyinde nasıl depolandığını anlama konusunda faydalı olduğunu vurgular.
Tim, ayrıca, binary değerlerin farklı sayısal veri türlerinde saklanabilmesi üzerinde durur. Tamsayılar (int) en yaygın olanıdır, fakat C# binary değerleri uint (unsigned integer) veya long gibi diğer türlerde saklamaya izin verir.
Örneğin:
uint unsignedBinary = 0b1010; // 10 in decimal
long largeBinary = 0b1100110011; // A longer binary numberDim unsignedBinary As UInteger = &B1010 ' 10 in decimal
Dim largeBinary As Long = &B1100110011 ' A longer binary numberuint ile temel fark, negatif değerleri desteklememesidir, oysa ki long çok daha büyük sayıları barındırabilir.
Tim, bu ayrımları anlamanın bit düzeyinde kaydırmalar ve maskeleme gibi düşük seviyeli işlemlerle çalışırken yardımcı olduğunu not eder.
Tim, ana çıkarımları özetleyerek sona eriyor:
0b prefixi kullanılarak tamsayı türlerinde saklanır.Convert.ToString(value, 2), sayıları binary formata dönüştürmeye yardımcı olur.PadLeft tutarlı bit uzunluklu bir temsil sağlar.Bu tekniklerle, C# dilinde ikili değerlerle çalışmak çok daha kolay ve daha sezgisel hale gelir. Konuyu daha iyi anlamak için onun tam videosunu izleyin.
Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!
Join our newsletter, you’ll get exclusive access on article updates. We value your privacy