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;
}