C# İkili VEYA Operatörünü Anlama
[{academy-video-youtube{"vid": "Sfsk8OF0sMM", "start_time": "0", "title": "Binary in C#: The Binary OR Operator in 10 minutes or less.", "creator": "Tim Corey", "length": "5m 54s"}}]
C#'da ikili işlemler, özellikle bayraklar, izinler ve düşük seviyeli veri işleme ile çalışırken bit düzeyinde manipülasyonlar için önemlidir. Temel ikili operatörlerden biri OR (|) operatörüdür. Binary in C#: The Binary OR Operator in 10 minutes or less videosunda, Tim Corey C#'da ikili OR operatörünün nasıl çalıştığını ve pratik uygulamalarını ayrıntılı bir şekilde açıklar. Anlatımlarını adım adım inceleyelim.
Binary OR Operatörüne Giriş
Tim, C#'da ikili işlemleri anlama serisinin devamı olarak videoya başlar. Bu ders, serinin beşincisi olup, OR operatörüne odaklanır. Temel bir senaryo kurar; burada iki tam sayı değeri, Val1 ve Val2, ikili formatta temsil edilmektedir. Bu değerler, ikili olarak nasıl göründüklerini net bir şekilde göstermek için konsola yazdırılır.
Bitwise OR Anlayışı
Bu noktada, Tim ikili bir karşılaştırmada OR operatörünün ne yaptığını açıklar. OR operatörünün, iki ikili değerin her bir bitini karşılaştırdığını açıklar. Eğer bitlerden biri 1 ise, o konumdaki sonuç 1 olacaktır. Her iki bit de 0 ise, sonuç 0 olacaktır.
Bunu göstermek için, iki değeri karşılaştırarak bir örnek sunar:
Val1 = 1101(ikili gösterim)Val2 = 0010(ikili gösterim)
Tim, her bit konumunda, en az bir değer 1 içeriyorsa, sonuç bitinin 1 olacağını vurgular. Aksi takdirde, 0 olarak kalır.
C#'ta OR Uygulama
Tim, OR işlemini gerçekleştirmek için gerçek kodu yazmaya geçer. OR işleminin sonucunu, tek boru (|) operatörüyle yeni bir değişkene atar:
// Define two binary values as integers
int Val1 = 0b1101; // Binary representation: 1101
int Val2 = 0b0010; // Binary representation: 0010
// Perform the bitwise OR operation
int result = Val1 | Val2;
// Print the result to the console
Console.WriteLine(Convert.ToString(result, toBase: 2)); // Output: 1111 in binary// Define two binary values as integers
int Val1 = 0b1101; // Binary representation: 1101
int Val2 = 0b0010; // Binary representation: 0010
// Perform the bitwise OR operation
int result = Val1 | Val2;
// Print the result to the console
Console.WriteLine(Convert.ToString(result, toBase: 2)); // Output: 1111 in binaryAçıklama
- İkili değerler, C#'ta doğrudan ikili girişi kolaylaştıran bir
0bön eki kullanılarak tanımlanır. - Bit düzeyinde OR işleminin sonucu
resultdeğişkeninde saklanır. Convert.ToString(result, toBase: 2), tam sayı sonucunu ikili formatını temsil eden bir diziye dönüştürür, böylece gösterilebilir.
Tim burada önemli bir ayrım yapar: if ifadeleri içindeki mantıksal ifadelerde mantıksal VEYA için || kullanırız; bit düzeyinde işlemlerde ise tek | kullanırız.
Çıktıyı Anlamak
OR işlemini çalıştırdıktan sonra, Tim sonucu konsola yazdırır. Çıktı, OR'un bit düzeyinde nasıl çalıştığını gösterir:
1101|0010 = 1111
Sonuçtaki her bit şu kuralı takip eder: ya Val1 ya da Val2, 1 içeriyorsa, sonuç 1 olur. Bu, OR'un iki ikili sayıyı nasıl birleştirdiğine dair net bir görselleştirme sağlar.
Girdi Değerlerini Değiştirmek
Kavramı pekiştirmek için Tim, OR operatörünün farklı girdilere nasıl tepki verdiğini görmek amacıyla Val2 değiştirir. Val2'u 1010 olarak değiştirir ve işlemi tekrar çalıştırır. Sonuç, OR mantığına uygun olarak tutarlıdır:
1101|1010 = 1111
Tim, sayıların en az birinde belirli bir konumda bir 1 bulunduğu sürece, o konumdaki sonucun da 1 olacağını belirtir.
Mantıksal OR vs. Bitwise OR
Tim, mantıksal OR (||) ile bitwise OR (|) arasındaki farkı açıklar. Mantıksal OR, örneğin:
// Example of logical OR in a conditional statement
if (condition1 || condition2)
{
// Execute if either condition1 or condition2 is true
}// Example of logical OR in a conditional statement
if (condition1 || condition2)
{
// Execute if either condition1 or condition2 is true
}İkili işlemler için kullanılan Bitwise OR ise, bu derste görüldüğü gibi, bit düzeyinde çalışır.
Bitwise OR'un Pratik Uygulamaları
Tim, bitwise OR'un kullanışlı olduğu bazı pratik senaryoları tartışarak sonlandırır. Yaygın kullanım senaryolarından biri, bayrak tabanlı ayarlarla çalışmaktır. Örneğin, çeşitli izin bayraklarının ikili değerler olarak saklandığı bir durumda, bunları verimli bir şekilde birleştirmek için OR kullanılabilir.
Örneğin, bayrak tabanlı bir sistemde:
READ_PERMISSION = 0001WRITE_PERMISSION = 0010EXECUTE_PERMISSION = 0100
Eğer bir kullanıcının hem okuma hem de yazma izinlerine ihtiyacı varsa, onları OR kullanarak birleştirebiliriz:
// Define permission flags as constants
const int READ_PERMISSION = 0b0001;
const int WRITE_PERMISSION = 0b0010;
// Combine read and write permissions using bitwise OR
int userPermissions = READ_PERMISSION | WRITE_PERMISSION; // Result: 0011
// Print the user permissions in binary
Console.WriteLine(Convert.ToString(userPermissions, toBase: 2)); // Output: 0011// Define permission flags as constants
const int READ_PERMISSION = 0b0001;
const int WRITE_PERMISSION = 0b0010;
// Combine read and write permissions using bitwise OR
int userPermissions = READ_PERMISSION | WRITE_PERMISSION; // Result: 0011
// Print the user permissions in binary
Console.WriteLine(Convert.ToString(userPermissions, toBase: 2)); // Output: 0011Tim, OR'un, mevcut değerleri etkilemeden bu tür bayrak kombinasyonlarıyla uğraşırken özellikle yararlı olduğunu vurgular.
Son Düşünceler
Video biterken, Tim ana noktaları özetler:
- Bitwise OR (
|) iki sayının uygun bitlerini karşılaştırır. - Eğer herhangi bir bit
1ise, sonuç1olur. - Bu operatör, bayrakları ve ayarları verimli bir şekilde birleştirmek için yaygın olarak kullanılır.
- Mantıksal OR'dan (
||), ayrılır, Boolean ifadeleri için kullanılır.
Tim'in açıklamaları ve örnekleri takip ederek, C#'da ikili OR operatörünün nasıl çalıştığını ve nerede etkili bir şekilde uygulanabileceğini net bir şekilde anlayabiliriz.



