con gli intcodice:#include <stdio.h> #include <stdlib.h> #define n_len 32 int ruotare (int,int,int,int); void bit_short(int,unsigned int[]); int numero,appoggio,bit_ruotare,verso; int main() { int k,bit[n_len],num; printf("inserisci il numero= "); scanf("%d",&numero); bit_short(numero,bit); printf("\t in binario:\n"); for(k=0;k<n_len;k++) (k%4==0)? printf(" %d",bit[k]):printf("%d",bit[k]); printf("\ninserisci il verso da ruotare (destra=0),(sinistra=1): "); scanf("%d",&verso); printf("inserisci i numeri di bit da ruotare:"); scanf("%d",&bit_ruotare); num=ruotare(numero,appoggio,bit_ruotare,verso); bit_short(num,bit); printf("\n in binario:\n"); for(k=0;k<n_len;k++) (k%4==0)? printf(" %d",bit[k]):printf("%d",bit[k]); printf("\n"); system("pause"); } void bit_short(int numero,unsigned int bit[n_len]) { short j; j=n_len-1; do{ bit[j--]=numero&1; numero=numero>>1; }while (numero!=0 && j>=0); if(j>=0){ do{ bit[j--]=0; } while(j>=0); } } int ruotare (int numero,int appoggio,int bit_ruotare,int verso) { if (verso==0){ appoggio=numero; numero=numero>>bit_ruotare; appoggio=appoggio<<(sizeof(int)*8)-bit_ruotare; numero=numero|appoggio; printf("il numero ruotato e' %d",numero); } else{ appoggio=numero; numero=numero<<bit_ruotare; appoggio=appoggio>>(sizeof(int)*8)-bit_ruotare; numero=numero|appoggio; printf("il numero ruotato e' %d",numero); } return numero; }![]()