si... fa esattamente la stessa cosa![]()
codice:#include <stdio.h> #include <stdlib.h> #define n_len 16 void bit_short(short n, unsigned char bit[n_len]); void estrai_bit_meno_sign( short *A, short k); int main() { short A,k,i; 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: "); estrai_bit_meno_sign(&A,k); for(i=k; i>0; i--) { bit_short(A,bit); printf(" %1u",bit[i]); } printf("\n"); 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_meno_sign(short *A, short k) {unsigned short mask=~((~0u)<<k); *A=*A&mask; }![]()

Rispondi quotando