IRONSOFTWAREHOME

Zrozumienie operatora NOT binarnego w C#

Binary in C#: Binary NOT Operator in 10 minutes or less.

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".

Wprowadzenie do operatora NOT

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.

Ustawienie kodu

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;

To ustawia prosty scenariusz, w którym można zastosować operator NOT.

Użycie operatora 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;

Zaznacza, ż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.

Co robi operator NOT?

Tim wyjaśnia, że operator NOT odwraca wszystkie bity w binarnej reprezentacji liczby. To oznacza:

  • 1 zmienia się w 0
  • 0 zmienia się w 1

Zastosowanie ~ do liczby daje jej bitowy dopełnienie. Kopiuje dane wyjściowe konsoli, aby obserwować wynik.

Obserwacja wyniku

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

Dlaczego to się dzieje?

Zrozumienie reprezentacji 32-bitowej

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'));

To pokazuje pełną reprezentację binarną, ułatwiającą zobaczenie, jak wszystkie bity są odwrócone.

Dlaczego operator NOT jest ważny?

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:

  • Maskowanie bitów: Selektywne zatrzymywanie lub usuwanie bitów.
  • Resetowanie bitów: Resetowanie konkretnych bitów w liczbie binarnej.
  • Efektywne obliczenia: Wykonywanie niskopoziomowych optymalizacji pod kątem pamięci i szybkości.

Przygotowanie do bardziej zaawansowanych operacji

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:

  • Optymalizację użycia pamięci.
  • Wykonywanie operacji przy minimalnym zużyciu mocy obliczeniowej.
  • Efektywne kontrolowanie pojedynczych bitów w liczbach.

Perspektywy na przyszłość

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#.

Wnioski

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#!

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!

Let's Stay in Touch!

Join our newsletter, you’ll get exclusive access on article updates. We value your privacy

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Your trial license will be sent to your email address

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Otrzymaj swoją Konsultację Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta