Ecco il testo dell'esercizio:
Ed ecco il codice del programma, mi dà errori nelle void...consigli??codice:Scrivere una function C per eseguire l'addizione aritmetica in base 2 mediate gli operatori bitwise
codice:#include <stdio.h> #include <stdlib.h> #define MAX_BIT 7 void somma_binaria (int[], int[], int[]); void bitXOR (int[], int[], int[]); void bitAND (int[], int[], int[]); void leftSHIFT(int[], int); void main () { int i,j,z, op1[MAX_BIT] , op2[MAX_BIT], risultato[MAX_BIT]; printf("Inserire i codici binari da addizionare (MAX 7 BIT):\n"); puts("Primo operatore="); for (i=0;i<MAX_BIT;i++){ printf("\n Inserire bit numero %d: ",i+1); scanf("%d",&op1[i]);} puts("Secondo operatore="); for (j=0;j<MAX_BIT;j++){ printf("\n Inserire bit numero %d: ",j+1); scanf("%d",&op2[j]);} puts("Somma dei seguenti bit: "); for (i=0;i<MAX_BIT;i++){ printf("%d",op1[i]);} puts(" +\n"); for (j=0;j<MAX_BIT;j++){ printf("%d",op2[j]);} somma_binaria(op1[MAX_BIT],op2[MAX_BIT], risultato[MAX_BIT]); puts("Ecco il risultato: \n"); for (z=0;z<MAX_BIT;z++){ printf("%d",risultato[z]);} fflush(stdin); getchar(); } void bitXOR(int x[], int y[],int xor[MAX_BIT]) { int i; for(i=0; i<MAX_BIT; i++) {if (x[i]==y[i]) xor[i]=0; else xor[i]=1;} } void bitAND(int x[], int y[],int and[MAX_BIT]) { int i; for(i=0; i<MAX_BIT; i++) { if (x[i]==1 && y[i]==1) and[i]=1; else and[i]=0;} } void leftSHIFT(int x[], int n) { int i; for (i=0;i<MAX_BIT;i++) x[i]=x[i-n]; x[i-n]=0; } void somma_binaria(int x[], int y[], int sum[MAX_BIT]) { int i,j,z,rip[MAX_BIT]; for (z=0;z<MAX_BIT;z++){ rip[z]=1;} for(i=0;i<MAX_BIT;i++) { while (rip[i]>0) { sum[i] = bitXOR(x[i],y[i],sum[i]); rip[i] = bitAND(x[i],y[i],rip[i]); rip[i] = leftSHIFT(rip[i],1); x[i] = sum[i]; y[i] = rip[i]; } } }

Rispondi quotando