Oppure

Loading
06/07/10 8:15
Salve a tutti io sto iniziando a studiare gli operatori bit a bit!...
di scorrimento e la maschere!.. solo che non riesco a capire bene il loro funzioamento!.. Non capisco perché questo piccolo programmino
#include <stdlib.h>
#include <stdio.h>

int main (int argc, char **argv){

        int value, count;

        printf("Inserisci intero\n");
        scanf("%d", &value);

        for(count=16; count>=0; count--){
                printf("%d", (value >> count) & 0x01);
        }
        printf("\n");
}


mi converte in binario i numeri inseriti, o meglio non riesco a capire cosa fa la stringa

printf("%d", (value >> count) & 0x01)


in teoria fa lo spostamento verso destra di count, quindi prima di 0 poi di 1 ecc ecc... e poi applica una maschera and con 1...
e che significa??..
06/07/10 8:19
TheKaneB
aaa
06/07/10 8:25
Sei un grande thekaneB... :k:
06/07/10 9:01
Postato originariamente da giovybus:
che significa??..


Shift a destra di value per count bit. E poi prende il primo bit a destra.

In questo modo, il bit numero count viene portato nella posizione 0 e visualizzato.
06/07/10 9:22
Quindi ragazzi fatemi capire se ho capito bene il funzionamento di questi operatori bit a bit nel sorgente di poco fa!..

qundi se io inserisco 5 in value tramite la scanf
parte questo ciclo in decremento perché sennò mi stampa i valori al contrario!..

e quindi comincia

000...0101 il 5prima dello shift
000...0000 dopo lo shift di 16 posti
effettua l'AND con il bit più significativo e stampa 0

.... 14cicli dopo (circa)

000...0101 il 5prima dello shift
000...0001 con uno shift di 2posti
effettua l'and con il bit più significativo e stampa 1...

quindi ora è ben chiaro perché eseguendo il programma e inserendo 5 in input l'ountput da

00000000000000101

Grazie :)
06/07/10 9:27
TheKaneB
prego :-) mi piace la gente che impara in fretta!
aaa
06/07/10 16:59
Postato originariamente da giovybus:
ountput


output ...

Prova a scrivere lo stesso programma senza usare l'operatore >> ma solamente l'and
07/07/10 6:45
Postato originariamente da TheKaneB:

prego :-) mi piace la gente che impara in fretta!


:) mi è piaciuta la guida che mi hai fatto leggere ieri... ed è stata molto utile!..