Operatori bitwise
Gli operatori bitwise vengono utilizzati per applicare gli operatori booleani sui decimali convertendoli in binario e quindi questi operatori si sono applicati a poco a poco al binario di quel numero. A fini illustrativi vengono presi due decimali 12 e 13 se entrambi i numeri sono convertiti in binario, i valori diventano (1100) e (1101) rispettivamente.
Fondamentalmente ci sono sei operatori bitwise usati che sono:
Bitwise e operatore
Il primo operatore bitwise è l'operatore e che fornisce l'output solo quando entrambi gli ingressi sono uno o vero. Il segno per l'uso di bitwise è "E". Per ulteriori comprensione e il funzionamento viene applicato sui valori binari rispettivamente di 12 e 13. L'operazione si applica a poco a poco ai binari dei numeri come il primo bit di 12 che è 1 va e con il primo bit di 13 che è anche uno, quindi il risultato dell'operazione è uno e così via, quindi il risultato e il funzionamento è (1100) che è 12 se lo convertiamo in decimale.
Decimale | 12 | 13 |
Binario | 1100 | 1101 |
Operatore | (12 e 13) | |
Risultato | (1100) | |
Binario a decimale | 12 |
Bitwise o operatore
Il secondo operatore che è o quando applicato sui numeri binari fornisce uno come output quando solo uno degli ingressi è 1, quindi possiamo dire che l'output dell'operazione o sarà zero solo quando entrambi gli ingressi sono zero. Il segno utilizzato per l'operatore è "|". Per comprendere ulteriormente il funzionamento o possiamo applicare questo o l'operatore sui binari di 12 e 13.
L'operatore OR si applica un po 'a poco ai binari di 12 e 13 come il primo bit di 13 è 1 e il primo bit di 12 è anche uno, quindi l'output sarà anche uno che l'operazione sul resto del bit sarà la stessa. Il risultato è (1101) che viene quindi convertito in decimale che è 13
Decimale | 12 | 13 |
Binario | 1100 | 1101 |
Operatore | (12 | 13) | |
Risultato | (1101) | |
Binario a decimale | 13 |
Bitway non operatore
L'operatore NOT, a differenza degli altri operatori, ha solo un input e output e inverte l'ingresso. Il segno utilizzato per rappresentare l'operatore non è "~". Qui useremo il binario di un decimale. Ad esempio, se prendiamo il binario del 13 che è (1101) dopo il funzionamento dell'operatore o arriverà (0010) che è 2 in decimali.
Decimale | 13 |
Binario | 1101 |
Operatore | (~ 13) |
Risultato | (0010) |
Binario a decimale | 2 |
Operatore XOR BITWise
Questo operatore bitwise è chiamato esclusivo o l'unica differenza è che ha con l'ordine o l'operazione è che la sua uscita sarà zero quando entrambi gli ingressi sono uno. Per rappresentare o utilizzare questa operazione nella programmazione Arduino il segno utilizzato è "^". Se questa operazione viene applicata per i numeri 12 e 13 i cui binari sono (1100) e (1101) il risultato dell'operazione XOR Bit Wise è (0001) e il decimale di questo binario è 1.
Decimale | 12 | 13 |
Binario | 1100 | 1101 |
Operatore | (12 ^ 13) | |
Risultato | (0001) | |
Binario a decimale | 1 |
Shift a sinistra bitwise e turno a destra
Il cambio dei bit di un binario di un numero può essere fatto usando l'operatore di cambio; L'operatore del cambio è ulteriormente diviso in due tipi a seconda di quale lato deve essere fatto il turno. Per avere uno spostamento sul lato destro la formula utilizzata per questo è (a/(2^b)).
Allo stesso modo, per fare uno spostamento a sinistra la formula utilizzata è (a*(2^b)). Qui UN è il numero su cui si applica il turno ,2 è il numero di bit e b è il numero di bit cambi dati al numero. La rappresentazione del turno di sinistra è (<
Decimale | 12 | 12 |
Binario | 1100 | 1100 |
Operatore | 12 <<2 | 12 >> 2 |
Risultato | 110000 | 11 |
Binario a decimale | 48 | 3 |
Il programma Arduino per tutti gli operatori po 'saggi è compilato per dare un quadro chiaro della funzionalità di questi operatori:
int a = 12;
int b = 13;
int c; // per conservare il risultato
void setup () // Metti qui il codice di configurazione, da eseguire una volta:
Seriale.Inizia (9600); // Inizializzazione della comunicazione seriale
Seriale.print ("e:");
c = a & b;
Seriale.println (c);
Seriale.print ("o:");
c = a | b;
Seriale.println (c);
Seriale.print ("xor:");
c = a^b;
Seriale.println (c);
Seriale.print ("no:");
c = ~ a;
Seriale.println (c);
Seriale.print ("Spek a sinistra:");
c = 12<<2;
Seriale.println (c);
Seriale.print ("a destra del cambio:");
c = 12 >> 2;
Seriale.println (c);
void loop ()
// Metti qui il tuo codice principale, per eseguire ripetutamente:
Produzione
Conclusione
Per applicare l'operazione logica su due numeri bit per bit, vengono utilizzati gli operatori bitwise e questi operatori aiutano a realizzare la condizione utilizzata per eseguire un'attività specifica. Questo articolo spiega brevemente ogni tipo di operatore bitwise con esempi e per dare un chiaro concetto di questi operatori e viene anche dato un semplice codice Arduino.