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

Rispondi quotando