mi genera dei bit sballati tipo se gli metto in input il numero 5 in binario è : 0000 0101
estrai i 4 bit meno significativi...
e il risultato dell' output:
1010
codice:
void estrai_bit_meno_sign(short *n, short k,unsigned char bit[n_len])
{unsigned short mask=~((~0u)<<k);
short i;
   i=n_len-1;
     do        {
               bit[--i]=*n&1;
               *n=*n^mask;
               } while(*n !=0 && i>=0);
     if(i>=0)
     {
     do{
            bit[--i]=0;
       }while(i>=0);
       }
       for(i=0; i<k; i++){
   printf("%u",bit[i]);
}
}