PDA

View Full Version : [C]Shift bit


Luc@s
17-11-2003, 19:16
Come funzia e a cosa serve in C lo shift di bit??



Tnk 10000000000

cionci
17-11-2003, 22:01
Lo shift è un operatore... E' come chieere a cosa serve il + ;)

Sai come funziona l'algebra binaria ?

monkey72
17-11-2003, 22:07
shift sinistro (<<) o destro (>>) trasla il numero binario a destra o a sinistra di un n° di bit specificato e riempie di zeri i bit liberati
es (la sintassi non so se è giusta):
<<(01001, 1) = 10010
>>(01001, 2) = 00010

per il >> mi sembra ci sia una ulteriore condizione sul tipo del binario

Sephiroth83
18-11-2003, 01:12
La sintassi è:
"var1 >> 3" senza gli apici esegue lo shift a destra di 3 bit.
Puoi anche usare una notazione abbreviata. Al posto di scrivere "var1 = var1 << 2" puoi scrivere "var1 <<= 2" sempre senza gli apici.
C'è da precisare che quando si esegue lo shift a destra di una variabile unsigned gli spazi vuoti vengono riempiti con zeri, mentre se la variabile è signed il risultato dipende dalla macchina su cui gira il programma.

MaxFun73
18-11-2003, 16:15
Originariamente inviato da Luc@s
Come funzia e a cosa serve in C lo shift di bit??


Tutto quello che ti hanno risposto gli altri con l'aggiunta che con lo shift a dx fai le divisioni x 2 (intere) mentre a sx fai le moltiplicazioni x 2

0101 >> 0010 cioè 5 >> 2
0101 << 1010 cioè 5 << 10