ok, ho scritto questo programma per la rotazione dei bit su di un carattere, ma mi da dei risultati strani; il programma dovrebbe infatti cambiare il carattere andando a ruotare i bit, ma a quanto pare la lettera visualizzata è sempre la stessa, per non parlare delle maschere, che non rispecchiano le equazioni che ho impostato.... dove sto sbagliando????
codice:
#include<stdio.h>

char rotate(char,int,int);

int main()
{
   char  lettera,x;
   int spazi,dxosx;

   printf("inserire una lettera: ");
    scanf("%c",&lettera);
   printf("\ndi quanti spazi deve ruotare: ");
    scanf("%d",&spazi);
   printf("\na destra (0) o a sinistra (1): ");
    scanf("%d",&dxosx);
   x=rotate(lettera,spazi,dxosx);
   printf("\nrisultato= '%c'",x);
}

char rotate(char lettera, int spazi, int dxosx)
{
   char mask=0,appoggio;
         if(dxosx==0)
          {
           mask=2^spazi-1;
           appoggio=mask&lettera;
           lettera>>spazi;
           appoggio^lettera;
          }
         else
          {
            mask=(2^spazi-1)*(2^(8-spazi));
            appoggio=mask&lettera;
            lettera<<spazi;
            appoggio^lettera;
          }
   printf("\n'%d'",mask);
   return lettera;
}