Altbilgi içeriğine atla
Iron Academy Logo
C# Öğrenin
C# Öğrenin

Diğer Kategoriler

C#'ta İkili Değerleri Depolama ve Görüntüleme

Tim Corey
9m 43s

İkili sayılar, bilişim dünyasının temel bir parçasıdır ve bunlarla C# dilinde nasıl çalışılacağını anlamak, düşük seviyeli işlemler, bit düzeyinde manipülasyonlar ve verimli depolama için kritik önem taşır. 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österme konusundaki temel kavramları açıkça vereceğiz.

Tim, konuyu kısa fakat detaylı bir şekilde açıklayarak kavramayı kolaylaştırıyor. Adım adım açıklamasını izleyelim ve C#'da ikili değerlerin nasıl çalıştığını keşfedelim.

C#'ta İkili Değerlerin Depolanması

Tim, temel soruya yanıt vererek başlar: C# dilinde bir ikili sayıyı nasıl saklarız? İkili sayıların 0b101 gibi, taban-2 değerleri temsil ettiğini ve tamsayı değişkenlerde saklandığını açıklar.

Bir ikili değeri depolamak için Tim şu söz dizimini gösterir:

int binaryValue = 0b101; // Represents the decimal number 5
int binaryValue = 0b101; // Represents the decimal number 5

Burada, 0b, C#'ın sonraki rakamları ikili bir sayı olarak yorumlaması gerektiğini belirten bir önektir. Tim, 0b101 ifadesinin ondalık gösterimde 5'e eşdeğer olduğunu vurgular.

Ayrıca, öncül sıfırların eklenmesinin (örn., 0b00000101) değeri değiştirmediğini belirtir. Sistem hala bunu 5 olarak yorumlar çünkü o ekstra sıfırların sayısal bir önemi yoktur.

C#'ta İkili Değerlerin Yazdırılması

Bir ikili değeri depoladıktan sonra, bir sonraki adım onu görüntülemektir. Tim, ilginç bir davranışı belirtir: ikili olarak saklanan bir değeri yazdırdığınızda, C# onu varsayılan olarak ondalık sisteme çevirir.

Örneğin:

Console.WriteLine($"Binary value is: {binaryValue}");
// Outputs: Binary value is: 5
Console.WriteLine($"Binary value is: {binaryValue}");
// Outputs: Binary value is: 5

Her ne kadar binaryValue, 0b101 olarak saklanmış olsa da, konsol 5 çıktısını verecektir. Tim, C#'ın sayısal değerleri görüntülerken varsayılan olarak taban-10 ile çalıştığını açıklar.

Değeri ikili biçiminde görmek için bir dönüşüm yapmamız gerekir.

Tamsayıları İkili Biçime Çevirme

Tim, bir tamsayının ikili dize olarak formatlanması için basit bir yol sunar:

string binaryString = Convert.ToString(binaryValue, 2);
Console.WriteLine($"Binary representation: {binaryString}");
// Outputs: Binary representation: 101
string binaryString = Convert.ToString(binaryValue, 2);
Console.WriteLine($"Binary representation: {binaryString}");
// Outputs: Binary representation: 101

Convert.ToString(value, 2)'un bir tamsayıyı ikili temsil olarak string şeklinde dönüştürdüğünü açıklar. Bu şekilde, eğer 0b101 saklandıysa, konsol artık doğru bir şekilde 5 yerine 101 gösterecektir.

Ön Sıfırlarla İkili Değerleri Dolgu Yapma

Tim, ikili sayıları görüntülediğinde sıkça ortaya çıkan bir sorun olan onları ön sıfırlarla tutarlı bir şekilde formatlamayı ele alır. Birçok durumda, bir ikili sayının 8-bit formatında görünmesini isteriz (örn., 00000101 sadece 101 yerine).

PadLeft kullanarak bunu nasıl başaracağınızı açıklar:

string formattedBinary = binaryString.PadLeft(8, '0');
Console.WriteLine($"Formatted binary: {formattedBinary}");
// Outputs: Formatted binary: 00000101
string formattedBinary = binaryString.PadLeft(8, '0');
Console.WriteLine($"Formatted binary: {formattedBinary}");
// Outputs: Formatted binary: 00000101

Burada, PadLeft(8, '0'), ikili stringin her zaman en az 8 karakter uzunluğunda olmasını, eksik yerleri sıfırlarla doldurarak garanti eder. Bu, özellikle bayt boyutundaki ikili değerlerle çalışırken kullanışlıdır.

Tim, '0' etrafındaki tek tırnakların gerekli olduğunu, çünkü PadLeft karakterlerle çalıştığını, stringlerle değil, açıklar.

Ondalık Sayıların İkili Temsili

Tim'in yaptığı bir diğer önemli nokta, ikili temsilini elde etmek için sayıları ikili formatta (0b notasyonu) girmenize gerek olmadığıdır.

Örneğin, standart bir ondalık sayıyı alıp ikili hale çevirebilirsiniz:

int decimalNumber = 12;
string binaryRepresentation = Convert.ToString(decimalNumber, 2);
Console.WriteLine($"Binary equivalent of {decimalNumber} is {binaryRepresentation}");
// Outputs: Binary equivalent of 12 is 1100
int decimalNumber = 12;
string binaryRepresentation = Convert.ToString(decimalNumber, 2);
Console.WriteLine($"Binary equivalent of {decimalNumber} is {binaryRepresentation}");
// Outputs: Binary equivalent of 12 is 1100

Burada, 12 sayısı ondalık bir tamsayı olarak saklanmıştır, fakat dönüştürüldüğünde, doğru bir şekilde 1100 ikili olarak çıktıyı verir.

Tim, bu tekniğin hata ayıklama ve sayıların bit düzeyinde nasıl saklandığını anlamak için yararlı olduğunu vurgular.

Farklı Veri Türlerinde İkili Sayıların Depolanması

Tim ayrıca, ikili değerlerin farklı sayısal veri türlerinde nasıl saklanabileceğinden bahseder. Tamsayılar (int) en yaygın olanı iken, C#, ikili değerleri uint (işaretsiz tamsayı) veya long gibi diğer türlerde saklamaya izin verir.

Örneğin:

uint unsignedBinary = 0b1010; // 10 in decimal
long largeBinary = 0b1100110011; // A longer binary number
uint unsignedBinary = 0b1010; // 10 in decimal
long largeBinary = 0b1100110011; // A longer binary number

uint ile ana fark, negatif değerleri desteklememesidir, oysa long çok daha büyük sayıları tutabilir.

Tim, bu farkları anlamanın bit düzeyinde kaydırma ve maskeleme gibi düşük seviyeli işlemlerle çalışırken faydalı olduğunu belirtir.

Son Düşünceler

Tim, başlıca öngörülen bilgilerle kapanışı yapıyor:

  1. İkili sayılar, 0b öneki kullanılarak tamsayı türlerinde saklanır.
  2. Bir tamsayıyı yazdırmak varsayılan olarak ondalık temsil ile olur, dolayısıyla ikili çıktı için açık bir dönüşüm gerektirir.
  3. Convert.ToString(value, 2), sayıların ikili formata dönüştürülmesine yardımcı olur.
  4. PadLeft, tutarlı bir bit uzunluğunda temsil sağlar.
  5. Kullanım durumuna bağlı olarak, farklı sayısal türlerde ikili sayıları saklayabilirsiniz.

Bu tekniklerle, C#'da ikili değerlerle çalışmak çok daha kolay ve içgüdüsel hale gelir. Konuyu daha iyi anlamak için, onun tam videosunu izlediğinizden emin olun.

Hero Worlddot related to C#'ta İkili Değerleri Depolama ve Görüntüleme
Hero Affiliate related to C#'ta İkili Değerleri Depolama ve Görüntüleme

Sevdiğiniz Şeyleri Paylaşarak Daha Fazla Kazanın

.NET, C#, Java, Python veya Node.js üzerinde çalışan geliştiriciler için içerik oluşturuyor musunuz? Uzmanlığınızı ek gelire dönüştürün!

Iron Destek Ekibi

Haftanın 5 günü, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara