Ecco il testo dell'esercizio:
codice:
Scrivere una function C per eseguire l'addizione aritmetica in base 2 mediate gli operatori bitwise
Ed ecco il codice del programma, mi dà errori nelle void...consigli??
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]; }
	}
}