C#'ta İkili NOT Operatörünü Anlama
[{academy-video-youtube{"vid": "9zF2gEbsbho", "start_time": "0", "title": "Binary in C#: Binary NOT Operator in 10 minutes or less.", "creator": "Tim Corey", "length": "4m 48s"}}]
C#'ta ikili işlemler, bit düzeyinde çalışma, performans optimizasyonu ve verilerin nasıl saklandığı ve işlendiğini anlamak için önemlidir. Bu tür önemli bir operatör, bir sayının tüm bitlerini ters çeviren Binary NOT (~) operatörüdür. Bu konuda daha derin bir anlayış kazanmak için, Tim Corey'nin "Binary in C#: The Binary NOT Operator in 10 Minutes or Less" videosundan yürüyelim.
Binary NOT'a Giriş
Tim Corey, bu videonun C#'da ikili işlemleri anlamak üzerine olan bir serinin parçası olduğunu açıklayarak başlar. Bu belirli ders, serinin yedincisidir ve Binary NOT operatörü (~)'ne odaklanır. Bu dersi, on dakikadan az tutarak hızlı ve anlaşılır hale getireceğini vurgular.
Kod Ayarlama
Tim, başlangıç kodunu daha iyi okunabilirlik için değiştirir. İkili değerleri elle biçimlendirmek yerine, netlik sağlamak için sonunda iki nokta ve bir değişken adı kullanır. Bu şekilde, değerin ikili temsili başta kalır, karşılaştırmaları daha kolay hale getirir.
Bir tamsayı değişkeni tanımlayarak başlar:
// Declare an integer variable and assign it the value of 1.
int value = 1;// Declare an integer variable and assign it the value of 1.
int value = 1;NOT operatörünün uygulanabileceği basit bir senaryo kurar.
Binary NOT Operatörünü Kullanma
Tim, ~ operatörünü tanıtır ve sözdizimini gösterir:
// Apply the Binary NOT operator to flip all bits of the integer 'value'.
int notValue = ~value;// Apply the Binary NOT operator to flip all bits of the integer 'value'.
int notValue = ~value;Çoğu klavyede tildanın (~) sol üst köşede olduğunu, Escape tuşunun altında ve 1 tuşunun yanında olduğunu belirtir. Bu işaretin, genellikle "Bang karakter" olarak anılan ünlem işaretinden (!) farklı olduğunu netleştirir. Tilda bit düzeyinde olumsuzlama yaparken, ünlem işareti mantıksal olumsuzlama için kullanılır.
NOT Ne Yapar?
Tim, NOT operatörünün sayının ikili temsilindeki tüm bitleri ters çevirdiğini açıklar. Bu demektir ki:
- 1 0 olur
- 0 1 olur
~ bir sayıya uygulamak, onun bit düzeyinde tamamlayıcısını üretir. Sonucu gözlemlemek için konsol çıktısını kopyalar.
Çıktıyı Gözlemleme
Tim programı çalıştırır ve sonucun beklenenden çok daha uzun göründüğünü belirtir. Örneğin, değer = 1 ise, çıktı sadece 0 değil, ters çevrilen bitlerle birlikte daha uzun bir 1'ler dizisidir. ~1 için sonucun olduğunu belirtir:
// Observed output for ~1
11111111111111111111111111111110// Observed output for ~1
11111111111111111111111111111110Bu neden oluyor?
32-bit Temsilini Anlamak
Tim, bu davranışın C#'ın 32 bitlik bir işaretli tamsayı (int) kullanması nedeniyle meydana geldiğini açıklar. C#'ta int aslında Int32 olduğundan, 32 bitten oluşur. NOT işlemi yapıldığında, sadece 1'in tek bit temsili değil, tüm 32 bit ters çevrilir.
Bunu daha net hale getirmek için çıktıyı 32 biti açıkça gösterecek şekilde ayarlar.
// Convert the result of the NOT operation to a binary string representation,
// pad it to 32 bits, and print it.
Console.WriteLine(Convert.ToString(notValue, 2).PadLeft(32, '0'));// Convert the result of the NOT operation to a binary string representation,
// pad it to 32 bits, and print it.
Console.WriteLine(Convert.ToString(notValue, 2).PadLeft(32, '0'));Bu, tüm bitlerin nasıl ters çevrildiğini görmeyi kolaylaştıracak şekilde tam ikili gösterimi gösterir.
NOT Neden Önemlidir?
Bu noktada Tim, şu soruya hitap eder: NOT operatörü neden bile yararlıdır? Değeri, aşağıdaki gibi diğer bit düzeyinde işlemlerle çalışırken daha belirgin hale gelir:
- Bit maskesi: Bitleri seçici olarak tutma veya kaldırma.
- Bitleri temizleme: İkili sayıdaki belirli bitleri sıfırlama.
- Verimli hesaplamalar: Hafıza ve hız için düşük seviyeli optimizasyonlar yapma.
Daha Gelişmiş İşlemler İnşa Etme
Tim, daha karmakarışık ikili işlemlere geçmeden önce, NOT gibi temel kavramların anlaşılmasının önemini vurgular. İzleyicilere ikili işlemleri kavradıklarında, bu işlemlerin ne kadar güçlü ve verimli hale gelebileceğini göreceklerini temin eder. İkili manipülasyon, geliştiricilerin:
- Bellek kullanımını optimize etmesini sağlar.
- Minimum işlem gücüyle işlemler yapmasını sağlar.
- Sayılardaki bireysel bitleri verimli bir şekilde kontrol etmesini sağlar.
İleriye Bakmak
Tim, NOT operatörünü ve diğer bitwise tekniklerini kullanarak belirli bitleri temizlemeye odaklanacak bir sonraki dersten ipucu vererek sonlandırır. Bu temelleri anlamanın C#'da ikili ile etkili bir şekilde çalışmak için önemli olduğunu vurgular.
Sonuç
Tim Corey, C#'da Binary NOT operatörünün net ve pratik bir açıklamasını sunar. Bir sayının tüm bitlerini çevirerek, ~, bit düzeyinde çalışmak için temel bir araçtır. Bu operatörü anlamak, bit maskeleme ve bit kaydırma gibi daha ileri düzey binary operasyonlarının temelini atar. Düşük seviye programlamaya başlıyorsanız veya performansı optimize ediyorsanız, bu ustalaşılması gereken kritik bir kavramdır.
Daha fazla bilgi için Tim Corey'nin tam videosunu ve C#'da ikili üzerine olan serisini inceleyin!

