Napisac program symulujacy dodawanie binarne 2 liczb co najwyzej 12-bitowy.
Wynik przedstaw w postaci binarnej.
Program ktory napisalem poprawnie zamienia liczby dziesietne na binarne, lecz wskazuje zle wartosci po ich zsumowaniu.
Prosze o poprawienie tego kodu, badz wskazanie bledow.
Z gory dziekuje za wszelka pomoc.
Kod: Zaznacz cały
#include <stdio.h>
#include <conio.h>
int main () {
unsigned int x,y;
int k,r,b1[12],b2[12],i=0,n=0,licznik,carry=0,sum=0,suma[12],j;
do
{
printf("
Podaj liczbe x=");
k=scanf("%u",&x);
fflush(stdin);
} while (k==0);
do
{
printf("
Podaj liczbe y=");
k=scanf("%u",&y);
fflush(stdin);
} while (k==0);
do
{
r=x%2;
x=x/2;
b1[i]=r;
i++;
} while (x>0);
do
{
r=y%2;
y=y/2;
b2[n]=r;
n++;
} while (y>0); // do tego momentu program dziala poprawnie
if(i>n)
licznik=i;
else
licznik=n;
for(i=0; i<licznik; i++);
{
sum=b1[i]+b2[i]+carry;
if (sum==0)
{
suma[i]=0;
carry=0;
}
if (sum==1)
{
suma[i]=1;
carry=0;
}
}
printf("
Suma: ");
for(j=--i;j>=0;j--)
printf("%d",suma[j]);
printf("
");
getch();
return 0;
}