Ustawianie, czyszczenie i przełączanie bitu
Edycja pojedynczego bitu za pomocą masek
Ustawianie, czyszczenie i przełączanie bitu to bezpłatna lekcja Competitive Programming Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Competitive Programming Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Competitive Programming Academy zawiera 4 lekcji w sumie.
Edytuj po jednym bicie
Czasami trzeba zmienić pojedynczy bit bez naruszania pozostałych. Rozwiązaniem jest utworzenie maski, która wskazuje dokładnie wybrany bit. 🎯
Utwórz maskę pojedynczego bitu
Przesuń 1 na wybraną pozycję, a otrzymasz maskę z jednym ustawionym bitem. Pozycja 0 to bit najbardziej wysunięty na prawo.
mask = 1 << 3 # 0b1000, targets bit 3Ustaw bit za pomocą OR
Aby włączyć bit, wykonaj operację OR liczby z maską. OR wymusza wartość 1 na tej pozycji i pozostawia wszystkie pozostałe bity bez zmian. Nazywamy to ustawianiem bitu.
n = 0b0001
n |= (1 << 2) # 0b0101Ustawianie jest idempotentne
Jeśli bit ma już wartość 1, ponowne ustawienie go niczego nie zmienia. Operację OR z maską można bezpiecznie powtarzać, dzięki czemu dobrze sprawdza się wewnątrz pętli. 👍
Odwrócona maska
Aby wyczyścić bit, potrzebna jest maska, w której dana pozycja jest wyłączona, a wszystkie pozostałe włączone. Operator NOT (~) odwraca każdy bit prostej maski.
clear = ~(1 << 2) # ...11111011Czyszczenie bitu za pomocą AND
Należy wykonać AND liczby z odwróconą maską, aby wymusić wartość 0 danego bitu i zachować pozostałe bity. W ten sposób można wyczyścić pojedynczy bit.
n = 0b0111
n &= ~(1 << 1) # 0b0101Przełączanie bitu za pomocą XOR
Operacja XOR z maską pojedynczego bitu odwraca wartość na danej pozycji: 0 staje się 1, a 1 staje się 0. To przełączanie jest najczytelniejszą jednolinijkową operacją z tych trzech.
n = 0b0101
n ^= (1 << 0) # 0b0100Sprawdzanie, czy bit jest włączony
Należy wykonać AND liczby z maską pojedynczego bitu. Jeśli wynik jest różny od zera, dany bit jest ustawiony; jeśli wynosi zero, bit jest wyłączony.
n = 0b0100
on = (n & (1 << 2)) != 0 # TrueOdczyt bitu jako 0 lub 1
Należy przesunąć liczbę w prawo, aby przenieść wybrany bit na najniższą pozycję, a następnie wykonać AND z 1. W ten sposób otrzymuje się dokładnie wartość bitu: 0 lub 1.
n = 0b1010
bit = (n >> 1) & 1 # 1Dlaczego modyfikowanie bitów ma znaczenie
Ustawianie, czyszczenie i przełączanie bitów pozwalają przechowywać wiele flag włączonych lub wyłączonych w jednej liczbie całkowitej. To podstawa zwartego stanu opartego na masce bitowej w zadaniach konkursowych.
Uwaga na przesunięcie o jeden
Pozycje bitów zaczynają się od 0, więc bit k odpowiada wartości 1 przesuniętej w lewo o k pozycji. Pomylenie indeksu jest tutaj najczęstszym błędem początkujących.
Szybkie sprawdzenie
Proszę wybrać właściwą operację do wyczyszczenia bitu.
Podsumowanie: ustawianie, czyszczenie i przełączanie
OR ustawia bit, AND z NOT go czyści, a XOR przełącza pojedynczy bit. Opanowanie tych trzech masek pozwala kontrolować dowolny bit. 🎉
Często zadawane pytania
Czy lekcja „Ustawianie, czyszczenie i przełączanie bitu” jest bezpłatna?
Tak — pełny tekst „Ustawianie, czyszczenie i przełączanie bitu” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Competitive Programming Academy, przejdź na CoddyKit PRO. Kurs Competitive Programming Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Ustawianie, czyszczenie i przełączanie bitu”?
Edycja pojedynczego bitu za pomocą masek Ćwiczysz Competitive Programming Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Competitive Programming Academy?
Nie wymagamy żadnego doświadczenia. Competitive Programming Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Ustawianie, czyszczenie i przełączanie bitu”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Competitive Programming Academy?
Tak. Każda lekcja Competitive Programming Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- AND, OR, XOR i przesunięcia
- Ustawianie, czyszczenie i przełączanie bitu
- Zliczanie bitów i najniższy ustawiony bit
- Maski bitowe jako małe zbiory