Riporto un esempio preso da un libro per mostrare l'utilizzo degli operatori per la manipolazione dei bit:
Secondo quanto letto l'operazione di shift >> ammette uno shift di tot posizioni con tot non negativo. E fin qui ok.codice:/* getbits: estrae n bit di x a partire dalla posizione p */ unsigned getbits(unsigned x, int p, int n) { return (x >> (p+1-n)) & ~(~0 << n); }
Ma ipotizzando di passare alla funzione x,2,5 ottengo uno shift di -2 posizioni![]()
Poi mi sono fermato con la comprensione del codice e credo che chiederò il vostro aiuto![]()

Rispondi quotando

