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
5m 54s
Operacje binarne w C# są niezbędne do manipulacji bitowych, szczególnie przy pracy z flagami, uprawnieniami i przetwarzaniem danych na niskim poziomie. Jednym z podstawowych operatorów binarnych jest OR (`|) operator. W swoim filmie Binary in C#: The Binary OR Operator in 10 minutes or less, Tim Corey wyjaśnia, jak działa operator binarny OR w C# i jego praktyczne zastosowania. Przejdźmy przez jego wyjaśnienia krok po kroku.
Tim zaczyna film, kontynuując swoją serię na temat zrozumienia operacji binarnych w C#. Ta lekcja, piąta w serii, koncentruje się na operatorze OR. Tworzy podstawowy scenariusz, w którym ma dwie wartości całkowite, Val1 i Val2, przedstawione w formacie binarnym. Te wartości są drukowane na konsoli, aby zapewnić wyraźne wizualne przedstawienie tego, jak wyglądają w binarnym formacie.
W tym momencie Tim wyjaśnia, co robi operator OR w porównaniu binarnym. Wyjaśnia, że operator OR porównuje każdy bit dwóch wartości binarnych na odpowiadających pozycjach. Jeśli którykolwiek z bitów jest 1, wynik na tej pozycji będzie 1. Jeśli oba bity są 0, wynik będzie 0.
Aby to zademonstrować, przechodzi przez przykład porównania dwóch wartości:
Val1 = 1101 (reprezentacja binarna)Val2 = 0010 (reprezentacja binarna)Tim podkreśla, że na każdej pozycji bitowej, jeśli przynajmniej jedna z wartości ma 1, wynikowy bit będzie 1. W przeciwnym razie pozostaje 0.
Tim przechodzi do pisania rzeczywistego kodu wykonującego operację OR. Przypisuje wynik operacji OR do nowej zmiennej za pomocą pojedynczego znaku pipe (|) operatora:
// 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
Dim Val1 As Integer = &B1101 ' Binary representation: 1101
Dim Val2 As Integer = &B0010 ' Binary representation: 0010
' Perform the bitwise OR operation
Dim result As Integer = Val1 Or Val2
' Print the result to the console
Console.WriteLine(Convert.ToString(result, toBase:=2)) ' Output: 1111 in binary0b, co ułatwia bezpośrednie wprowadzanie binarne w C#.result.Convert.ToString(result, toBase: 2) konwertuje całkowity wynik na ciąg reprezentujący jego format binarny, aby można było go wyświetlić.Tim dokonuje ważnego rozróżnienia tutaj: w wyrażeniach logicznych wewnątrz instrukcji if, używamy || for logical OR, whereas in bitwise operations, we use a single | aby działać na poszczególnych bitach.
Po uruchomieniu operacji OR Tim drukuje wynik na konsoli. Wynik pokazuje, jak OR działa na poziomie bitowym:
1101|0010 = 1111Każdy bit w wyniku przestrzega zasady: jeśli albo Val1, albo Val2 ma 1, wynik jest 1. To daje wyraźne przedstawienie, jak OR łączy dwie liczby binarne.
Aby wzmocnić koncepcję, Tim modyfikuje Val2, aby zobaczyć, jak operator OR reaguje na różne dane wejściowe. Zmienia Val2 na 1010 i ponownie uruchamia operację. Wynik pozostaje zgodny z logiką OR:
1101|1010 = 1111Tim zwraca uwagę, że dopóki przynajmniej jedna z liczb ma 1 na danej pozycji, wynik na tej pozycji również będzie 1.
Tim krótko przypomina różnicę między logicznym OR (||) and bitwise OR (|). Logiczny OR jest używany do warunków logicznych, takich jak:
// 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 OrElse condition2 Then
' Execute if either condition1 or condition2 is true
End IfBitowy OR, z drugiej strony, jest używany do operacji binarnych na poziomie bitowym, jak to pokazano w tej lekcji.
Tim kończy, omawiając kilka praktycznych scenariuszy, w których bitowe OR jest przydatne. Jednym z powszechnych zastosowań jest praca z ustawieniami opartymi na flagach. Na przykład, jeśli masz różne flagi uprawnień przechowywane jako wartości binarne, OR można użyć do ich efektywnego łączenia.
Na przykład, w systemie opartym na flagach:
READ_PERMISSION = 0001WRITE_PERMISSION = 0010EXECUTE_PERMISSION = 0100Jeśli użytkownik potrzebuje zarówno uprawnień do odczytu, jak i zapisu, możemy je połączyć, używając OR:
// 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 READ_PERMISSION As Integer = &B0001
Const WRITE_PERMISSION As Integer = &B0010
' Combine read and write permissions using bitwise OR
Dim userPermissions As Integer = READ_PERMISSION Or WRITE_PERMISSION ' Result: 0011
' Print the user permissions in binary
Console.WriteLine(Convert.ToString(userPermissions, toBase:=2)) ' Output: 0011Tim podkreśla, że OR jest szczególnie przydatne przy obsłudze takich kombinacji flag bez wpływu na istniejące wartości.
Gdy film dobiega końca, Tim podsumowuje kluczowe punkty:
|) porównuje odpowiadające bity w dwóch liczbach.1, wynik jest 1.||), który jest używany do wyrażeń logicznych.Postępując zgodnie z wyjaśnieniami i przykładami Tima, możemy uzyskać solidne zrozumienie, jak działa operator binarny OR w C# i gdzie można go skutecznie zastosować.
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