#include /* Calcul de l'operation binaire a ET b en calculant les representations de a et de b */ int main(void) { int a,b,m; int i,nb_Bits=8; int a_Bits[8], b_Bits[8], and_Bits[8]; int number,remaining; printf("Donnez moi les valeurs de a et b\n"); printf("a? \n"); scanf("%d",&a); printf("b? \n"); scanf("%d",&b); /* Calcul de a en binaire */ number=a; for(i=nb_Bits-1;i>=0;i=i-1) { remaining=number%2; number=number/2; a_Bits[i]=remaining; } /* Calcul de b en binaire */ number=b; for(i=nb_Bits-1;i>=0;i=i-1) { remaining=number%2; number=number/2; b_Bits[i]=remaining; } /* Calcul de a ET b en binaire */ for(i=0;i<=nb_Bits-1;i=i+1) { if (a_Bits[i]+b_Bits[i]==2) { and_Bits[i]=1; } else { and_Bits[i]=0; } } /* Calcul en decimal de a ET b */ number=0; m=1; for(i=nb_Bits-1;i>=0;i=i-1) { number=number+(m*and_Bits[i]); m=m*2; } printf(" a: "); for(i=0;i<=nb_Bits-1;i=i+1) { printf("%d",a_Bits[i]); } printf("\n"); printf(" b: "); for(i=0;i<=nb_Bits-1;i=i+1) { printf("%d",b_Bits[i]); } printf("\n"); printf("and: "); for(i=0;i<=nb_Bits-1;i=i+1) { printf("%d",and_Bits[i]); } printf("\n"); printf("a ET b: %d\n",number); return 0; }