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
4m 48s
Operacje binarne w C# są kluczowe do pracy na poziomie bitowym, optymalizacji wydajności i zrozumienia, jak dane są przechowywane i manipulowane. Jednym z takich ważnych operatorów jest operator NOT (~), który odwraca wszystkie bity liczby. Aby lepiej to zrozumieć, przejdźmy przez wideo Tima Coreya "Binary in C#: The Binary NOT Operator in 10 Minutes or Less".
Tim Corey zaczyna od wyjaśnienia, że to wideo jest częścią serii o zrozumieniu binary w C#. Ta konkretna lekcja jest siódmą w serii i skupia się na operatorze NOT (~). Podkreśla, że będzie to krótka lekcja, trwająca mniej niż dziesięć minut, co czyni ją dostępną i łatwą do zrozumienia.
Tim dostosowuje kod startowy dla lepszej czytelności. Zamiast ręcznie formatować wartości binarne, używa dwukropka (:) i nazwy zmiennej na końcu dla jasności. Dzięki temu reprezentacja binarna wartości pozostaje na początku, co ułatwia porównania.
Zaczyna od zadeklarowania zmiennej typu integer:
// 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.
Dim value As Integer = 1To ustawia prosty scenariusz, w którym można zastosować operator NOT.
Tim przedstawia operator ~ i demonstruje jego składnię:
// 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'.
Dim notValue As Integer = Not valueZaznacza, że na większości klawiatur tylda (~) znajduje się w lewym górnym rogu, poniżej klawisza Escape, obok klawisza 1. Wyjaśnia, że różni się to od wykrzyknika (!), który często nazywany jest znakiem "Bang". Tylda wykonuje negację bitową, podczas gdy wykrzyknik używany jest do negacji logicznej.
Tim wyjaśnia, że operator NOT odwraca wszystkie bity w binarnej reprezentacji liczby. To oznacza:
Zastosowanie ~ do liczby daje jej bitowy dopełnienie. Kopiuje dane wyjściowe konsoli, aby obserwować wynik.
Tim uruchamia program i zauważa, że wynik wydaje się znacznie dłuższy niż oczekiwano. Na przykład, jeśli wartość = 1, wynik to nie tylko 0, ale dłuższa sekwencja jedynek poprzedzających odwrócone bity. Zauważa, że wynik dla ~1 to:
// Observed output for ~1
11111111111111111111111111111110' Observed output for ~1
11111111111111111111111111111110Dlaczego to się dzieje?
Tim wyjaśnia, że takie zachowanie wynika z faktu, że C# używa 32-bitowego signed integer (int). Ponieważ int w C# to właściwie Int32, składa się z 32 bitów. Podczas wykonywania operacji NOT, wszystkie 32 bity są odwracane, nie tylko jedno-bitowa reprezentacja 1.
Aby to wyjaśnić, dostosowuje formatowanie danych wyjściowych, aby wyświetlić 32 bity w pełni:
// 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"c))To pokazuje pełną reprezentację binarną, ułatwiającą zobaczenie, jak wszystkie bity są odwrócone.
W tym momencie Tim adresuje pytanie: Dlaczego operator NOT jest w ogóle użyteczny? Zasugeruje, że jego wartość staje się bardziej oczywista, gdy pracuje się z innymi operacjami bitowymi, takimi jak:
Tim podkreśla, że przed przystąpieniem do bardziej złożonych operacji binarnych, ważne jest zrozumienie podstawowych pojęć, takich jak operator NOT. Zapewnia oglądających, że gdy już zrozumieją operacje binarne, zobaczą, jak potężne i efektywne mogą być te operacje. Manipulacja binarna pozwala programistom na:
Tim kończy, sugerując, że następna lekcja skupi się na resetowaniu konkretnych bitów za pomocą operatora NOT i innych technik bitowych. Podkreśla, że opanowanie tych podstaw jest niezbędne do efektywnej pracy z binary w C#.
Tim Corey dostarcza jasne i praktyczne wyjaśnienie operatora NOT w C#. Odwracając wszystkie bity liczby, ~ jest fundamentalnym narzędziem do pracy na poziomie bitów. Zrozumienie tego operatora stanowi podstawę do bardziej zaawansowanych operacji binarnych, takich jak maskowanie i przesuwanie bitów. Jeśli zanurzasz się w programowaniu niskiego poziomu lub optymalizacji wydajności, to kluczowa koncepcja do opanowania.
Aby uzyskać więcej informacji, obejrzyj pełne wideo Tima Coreya i jego serię o binary w C#!
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