Impostare, azzerare e invertire un bit
Modificare un singolo bit con le maschere
Impostare, azzerare e invertire un bit è una lezione Coding Interview Prep gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Coding Interview Prep, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Coding Interview Prep include 4 lezioni in totale.
Modificare un bit alla volta
A volte è necessario modificare un singolo bit senza toccare gli altri. Il trucco consiste nel creare una maschera che punti esattamente al bit desiderato. 🎯
Creare una maschera a bit singolo
Sposti 1 nella posizione desiderata per ottenere una maschera con un solo bit attivo. La posizione 0 è il bit più a destra.
mask = 1 << 3 # 0b1000, targets bit 3Impostare un bit con OR
Per attivare un bit, applichi OR al numero e alla maschera. OR forza quella posizione a 1 e lascia invariato ogni altro bit. Questa operazione si chiama impostazione di un bit.
n = 0b0001
n |= (1 << 2) # 0b0101L’impostazione è idempotente
Se il bit è già 1, impostarlo di nuovo non cambia nulla. Fare OR con una maschera è sicuro da ripetere, quindi l’operazione è affidabile all’interno dei cicli. 👍
La maschera invertita
Per azzerare un bit serve una maschera con quella posizione disattivata e tutte le altre attivate. L’operatore NOT (~) inverte ogni bit della maschera semplice.
clear = ~(1 << 2) # ...11111011Azzerare un bit con AND
Calcolate l’AND del numero con la maschera invertita per forzare quel bit a 0 mantenendo invariati gli altri. In questo modo si può azzerare un singolo bit.
n = 0b0111
n &= ~(1 << 1) # 0b0101Invertire un bit con XOR
Lo XOR con una maschera composta da un solo bit inverte quella posizione: 0 diventa 1 e 1 diventa 0. Questa inversione è la soluzione su una sola riga più pulita delle tre.
n = 0b0101
n ^= (1 << 0) # 0b0100Verificare se un bit è attivo
Calcolate l’AND del numero con una maschera composta da un solo bit. Se il risultato è diverso da zero, quel bit è impostato; se è zero, il bit è disattivato.
n = 0b0100
on = (n & (1 << 2)) != 0 # TrueLeggere il bit come 0 o 1
Spostate il numero a destra per portare il bit interessato all’ultima posizione, quindi calcolate l’AND con 1. Si ottiene esattamente il valore del bit, 0 oppure 1.
n = 0b1010
bit = (n >> 1) & 1 # 1Perché è importante modificare i bit
Impostare, azzerare e invertire i bit permette di memorizzare molti flag attivi o disattivi all’interno di un solo intero. Questo è il cuore dello stato compatto con maschere di bit nelle competizioni.
Attenzione all’errore di scarto di uno
Le posizioni dei bit iniziano da 0, quindi il bit k corrisponde al valore 1 spostato a sinistra di k posizioni. Confondere l’indice è l’errore più comune per chi è agli inizi.
Verifica rapida
Scelga l’operazione corretta per azzerare un bit.
Riepilogo: impostare, azzerare, invertire
OR imposta i bit, AND con NOT li azzera e XOR inverte un singolo bit. Padroneggiando queste tre maschere, potrà controllare qualsiasi bit desideri. 🎉
Domande Frequenti
La lezione «Impostare, azzerare e invertire un bit» è gratuita?
Sì — il testo completo di «Impostare, azzerare e invertire un bit» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Coding Interview Prep, passa a CoddyKit PRO. Il corso Coding Interview Prep include 4 lezioni in totale.
Cosa imparerò in «Impostare, azzerare e invertire un bit»?
Modificare un singolo bit con le maschere Eserciti Coding Interview Prep con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Coding Interview Prep?
Non è richiesta alcuna esperienza precedente. Coding Interview Prep su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Impostare, azzerare e invertire un bit»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Coding Interview Prep?
Sì. Ogni lezione Coding Interview Prep include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- AND, OR, XOR e shift
- Impostare, azzerare e invertire un bit
- Contare i bit e il bit impostato meno significativo
- Le bitmask come piccoli set