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
9m 33s
Operatory bitowe są istotną częścią C#, która pozwala manipulować poszczególnymi bitami liczby całkowitej. Te operatory są niezwykle użyteczne w programowaniu niskopoziomowym, optymalizacjach wydajności i pracy z flagami. W tym artykułe przyjrzymy się bliżej przesunięciom bitowym, korzystając z filmu Tima Coreya Binary in C#: Bit Shifting with Bitwise Shift Left and Bitwise Shift Right in 10 minutes or less.
Tim kontynuuje swoją serię dotyczącą zrozumienia systemu binarnego w C#. To jest czwarta lekcja w tej serii, a skupia się na przesunięciach bitowych. Celem jest zrozumienie, jak przesunięcia bitowe w lewo lub w prawo wpływają na liczbę i jak możemy wykorzystać tę technikę w programowaniu.
Tim przygotowuje przyklad, tworzac metode o nazwie ConvertToBinary, ktora zamienia liczbe calkowita na jej reprezentacje binarna i zapewnia jej wyswietlenie w formacie 8-bitowym. Dzięki temu łatwiej zobaczyć, jak działają przesunięcia bitowe.
Tim wprowadza pojecie przesuniecia bitowego w lewo, uzywajac operatora przesuniecia w lewo (<<). Wyjasnia, ze przesuniecie w lewo o n pozycje rowna sie pomnozeniu liczby przez 2^n.
Na przykład, zaczyna od liczby 9, która w systemie binarnym to:
0000100100001001Kiedy przesuwa ja o trzy miejsca w lewo (9 << 3), powoduje to nastepujacy wynik:
01001000&H48Ta nowa wartosc binarna reprezentuje 72. Tim podkresla, ze przesuniecie w lewo zasadniczo dodaje trzy zera po prawej stronie, co skutkuje pomnozeniem liczby przez dwa trzy razy (tj. 9 * 2^3 = 72).
Tim wyjaśnia, że chociaż przesunięcie istniejącej liczby jest przydatne, bardziej powszechna praktyka polega na przesunięciu liczby 1 na określoną pozycję. Na przykład:
1 << 31 << 3Przesuwa to bit do czwartej pozycji, co skutkuje:
00001000&H00001000Ta liczba binarna odpowiada 8. Tim zwraca uwagę, że ta technika jest szczególnie pomocna przy pracy z maskami bitowymi lub flagami.
Nastepnie Tim wyjasnia przesuniecie bitowe w prawo, uzywajac operatora przesuniecia w prawo (>>). Przesuniecie w prawo o n pozycji rowna sie podzieleniu liczby przez 2^n i odrzuceniu reszty.
Uzywajac poprzedniego przykladu, liczba 9 w systemie binarnym (00001001) przesunieta o dwa miejsca w prawo (9 >> 2) daje nastepujacy wynik:
00000010&H00000010To odpowiada 2. Tim wyjaśnia, że przesunięcie w prawo w zasadzie usuwa bity z prawej strony, zmniejszając wartość liczby.
Tim omawia, dlaczego przesunięcia bitowe są wartościowe w programowaniu. Niektóre z kluczowych zastosowań to:
Optymalizacja obliczeń: Przesunięcia bitowe mogą zastąpić mnożenie i dzielenie przez potęgi dwójki, co przyspiesza operacje.
Ustawianie i czyszczenie określonych bitów: W enumerycjach opartych na flagach przesunięcia bitowe pozwalają na efektywne przechowywanie i manipulację wartościami logicznymi.
Praca z hardware'em: Wiele operacji niskopoziomowych opiera się na manipulacjach bitowych.
Tim kończy, podkreślając, że przesunięcia bitowe są często używane w połączeniu z innymi operacjami. Zrozumienie, jak skutecznie przesuwać bity, może prowadzić do bardziej wydajnego i zoptymalizowanego kodu, zwłaszcza w scenariuszach związanych z flagami, obliczeniami binarnymi i aplikacjami, które są krytyczne dla wydajności.
Śledząc wyjaśnienia Tima Coreya, zbadaliśmy, jak działają przesunięcia bitowe w lewo i w prawo, jak wpływają na liczby i gdzie są powszechnie używane. Jeśli chcesz wizualnego i szczegółowego omówienia, film Tima jest doskonałym źródłem do opanowania operacji bitowych 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