Sommario:
Video: Nozioni di Programmazione Informatica per AGS #1 - Programmazione Orientata agli Oggetti 2024
Una manciata di operatori di programmazione C fornisce la manipolazione dei dati a livello binario. Gli operatori sono facili da ignorare, ma solo quando il loro vero potere e utilità non sono apprezzati.
Il ~ e! operatori
Due operatori binari rari sono il ~ (o il complemento a 1) e il! (o no). Mancano il fascino degli operatori logici bit a bit, ma hanno un posto.
L'operatore del complemento 1 capovolge tutti i bit di un valore, trasformando un 1 in uno 0 e uno 0 in un 1. Ad esempio:
~ 01010011 = 10101100
The! L'operatore (NOT) influenza l'intero valore, tutti i bit. Cambia qualsiasi valore diverso da zero a 0 e il valore da 0 a 1:
! 01010011 = 00000000! 00000000 = 00000001
Zero e 1 sono gli unici due risultati possibili quando si usa il bit per bit! operatore.
Sia il ~ che! gli operatori sono operatori unari - si semplifica semplicemente un valore per ottenere i risultati.
Operatore | Nome | Tipo | Azione |
---|---|---|---|
e | E | Bitwise | Bit maschera, reimpostando alcuni bit su 0 e lasciando il resto
da solo |
| | OR | Bitwise | Imposta bit, modificando bit specifici da 0 a 1 |
^ | XOR | Bitwise | Modifica i bit su 0 quando corrispondono; altrimenti, a 1 |
~ | 1 complemento | Unario | inverte tutti i bit |
~ | NON | Unario | Cambia i valori diversi da zero a 0; 0 valori, a 1 |
La funzione binbin () |
Due istruzioni spiegano cosa sta succedendo nella funzione binbin () per convertirlo in una stringa binaria:
bin [x] = n & 0x80? '1': '0'; n << = 1;
La prima istruzione esegue una maschera AND con il valore n. Tutto tranne il bit più a sinistra nel numero è scartato. Se quel bit è impostato, il che lo rende una condizione TRUE, il carattere 1 viene memorizzato nell'array; altrimenti, il carattere 0 viene memorizzato.
Il valore è espresso come 0x80, che è la notazione esadecimale, un tipo di abbreviazione per binario. Il valore esadecimale 0x80 è uguale a 10000000 binario, che è la maschera AND. Se il valore è 16 bit anziché 8, viene invece utilizzato 0x8000, che crea una maschera binaria a 16 bit.
La seconda istruzione sposta i bit nel valore di una tacca a sinistra. Mentre il ciclo ruota, lavorando attraverso il valore n, un altro bit nel valore viene spostato nella posizione più a sinistra. Quel bit viene valutato e la stringa binaria viene creata inserendo un carattere '1' o '0'.