ho provato ad implementare il codice in C, ma non riesco a visualizzare i bit meno significativi e la maschera che mi sono creata con gli operatori bitwise
codice:#include <stdio.h> #include <stdlib.h> #define n_len 16 void bit_short(short n, unsigned char bit[n_len]); void estrai_bit(unsigned char bit[n_len], short A, short k); int main() { short A,k; unsigned char bit[n_len]; printf("numero:"); scanf("%d",&A); bit_short(A,bit); printf("in binario:"); for(k=0; k<n_len; k++) (k%4==0) ? printf(" %1u",bit[k]): printf("%1u",bit[k]); printf("\n"); printf("quanti bit meno significativi vuoi estrarre? :"); scanf("%d",&k); printf("i bit meno significativi: \n"); estrai_bit(bit,A,k); system("PAUSE"); return 0; } void bit_short(short n, unsigned char bit[n_len]) { short j; j=n_len-1; do { bit[j--]=n&1; n=n>>1; } while(n !=0 && j>=0); if(j>=0) { do { bit[j--]=0; } while(j>=0); } } void estrai_bit(unsigned char bit[n_len],short A, short k) { short mask=0; short i; for(i=1; i>k; i++){ mask=mask<<1|1; bit[i]=A&mask; printf("%u\n",bit[i]); printf("%d\n",mask); } }

Rispondi quotando