Ti posto quello a cui sn giunto..spero di non confonderti le idee...speriamo con i famosi tag code...
codice:
#include<stdio.h>
#include<stdlib.h>
#define N 8
int differenza(char s1[N], char s2[N], char s3[N]);
int somma (char s1[N], char s2[N], char s3[N]);
int complemento_a_2 (char s[N]);
char somma_binaria (char a, char b, char c, char*r);
int main()
{
char s1[N];
char s2[N];
char s3[N];
int overflow;
int num,i,j,k;
printf("Inserisci la prima sequenza di bit dalla cifra meno significativa\n");
printf("s1: ");
scanf("%s", s1);
printf("Inserisci la seconda sequenza di bit dalla cifra meno significativa\n");
printf("s2: ");
scanf("%s", s2);
num=somma(s1,s2,s3);
for(i=0;i<N;i++)
{
printf("%c",s1[i]);
}
printf("+\n");
for(j=0;j<N;j++)
{
printf("%c",s2[j]);
}
printf("=\n");
for(k=0;k<N;k++)
{
printf("%c",s3[k]);
}
overflow=differenza(s1,s2,s3);
il controllo dell'overflow non è richiesto dal compito.
printf("s3: %s\n",s3);
if(overflow)
printf("Si è verificato un overflow.\n");*/
system("PAUSE");
return EXIT_SUCCESS;
}
int somma (char s1[N], char s2[N], char s3[N])
{
int i,riporto;
i=0;
riporto=0;
while((s1[i]!='\0')&& (s2[i]!='\0'))
{
s3[i]=s1[i]+s2[i]+riporto;
if(s3[i]>=2)
{
riporto=1;
i++;
}
else
riporto=0;
i++;
}
return i;
}
int differenza(char s1[N], char s2[N], char s3[N])