Jak w temacie, chcę utworzyć kalkulator realizujący operacje bitowe z konwersją do liczb binarnych na samym końcu. Moim problemem jest to, że zawsze wychodzi mi ten sam błędny wynik w przypadku każdego case'a (00010110000).
#include <stdio.h>
#include <stdlib.h>
void konwert(){
int a[10],i,sum;
for(i=0;sum>0;i++)
{
a[i]=sum%2;
sum=sum/2;
}
printf("Liczba binarna=");
for(i=i-1;i>=0;i--)
{
printf("%d",a[i]);
}
}
int main()
{
int var1,var2,sum,a[10],i;
char op;
printf("Jaka operacje chcesz wykonac?\n");
scanf("%c", &op);
printf("Podaj wartosci\n");
scanf("%d %d", &var1, &var2);
switch(op){
case '&':
sum=var1&var2;
konwert();
break;
case '|':
sum=var1|var2;
konwert();
break;
case '^':
sum=var1^var2;
konwert();
break;
case '!':
sum=~var1;
konwert();
break;
default:
printf("Niepoprawny operator");
break;
}
}
Jeśli macie jakieś uwagi co mógłbym poprawić, albo jakieś ciekawsze rozwiązania to chętnie posłucham :)