PDA

Visualizza la versione completa : [Generico] Bit - String operators


RokStar
01-09-2003, 19:07
Ho serie difficoltà a capire a cosa servono questi operatori... qualcuno mi sa dare una dritta? Credo che tali operatori siano presenti in diversi linguaggi quindi ho messo [Generico], spero non dispiaccia a chi modera quest'area del forum.

Gli operatori di cui parlo sono
<<
>>
|
&
^
~

Grazie a chi avrà la pazienza di rispondermi

LeleFT
01-09-2003, 20:39
Allora:

l'operatore << effettua uno LEFT SHIFT (Shift a sinistra) di un certo numero di bit, aggiungendo a destra degli zeri. Esempio:


[110101] shiftato a sinistra di 1 bit --> [101010]


L'operatore >> è il fratello di quello precedente: effettua uno shift a destra.

L'operatore | è un OR bit per bit. Esempio:


[1011001] | [0111010] --> [1111011]: se c'è un 1 sul primo o sul secondo, nello stesso posto ci sarà nel risultato;
[1011001] | [0000000] --> [1011001]: nessun cambiamento, gli zeri non influenzano il risultato.


l'operatore & è il fratello di |: effettua un AND bit per bit. Esempio:


[1011001] & [0111010] --> [0011000]: dove ci sono gli zeri, ci saranno degli zeri nel risultato nella stessa posizione. Viene molto usato per creare delle maschere.

[1001011] & [0000001] --> [0000001]: la maschera (il secondo operando) fa in modo che nel risultato ci sia il valore dell'ultimo bit.


L'operatore ^ io lo conosco solo come elevamento a potenza:


a = 2^4;

ora 'a' vale 16.


L'ultimo io lo conosco solo come identificatore di distruttore in C++, ma prima di spiegarti cos'è un distruttore, dovresti studiarti un po' di programmazione ad oggetti (se giò l'hai fatto, allora dovresti sapere cos'è un distruttore).


Ciao.

kuarl
02-09-2003, 10:26
^ xor
~ not

[110010] ^ [101001] => [011011] (or esclusivo, o uno o l'altro.... ritorna 1 solo quando uno dei due operandi è uguale a 1, ma non entrambi)
~[110101] => [001010] (inverte il senso dei singoli bit)

Loading