/* Faça uma função de protótipo int somaBit (int b1, int b2, int *vaium); que recebe três bits (inteiros 0 ou 1) e devolve a soma binária deles e atualiza o valor de *vaium se a soma for maior ou igual a 2. Faça um programa que leia dois números inteiros positivos, representando números binários, e calcula a soma deles, usando a função acima. Exemplo: Dados 1010111 e 1101100, seu programa deverá imprimir o número 11000011. */ #include int somaBit (int b1, int b2, int *vaium); /* devolve a soma binária de b1, b2 e *vaium e atualiza *vaium se for o caso */ int somaBit (int b1, int b2, int *vaium) { int soma = b1 + b2 + *vaium; if (soma >= 2){ *vaium = 1; soma = soma - 2; } else { *vaium = 0; } return soma; } int main() { int a, b, ao, bo, vaium, soma, s, mult; printf("Digite dois números binários: "); scanf("%d %d", &a, &b); ao = a; bo = b; soma = 0; vaium = 0; mult = 1; while (a > 0 || b > 0){ s = somaBit (a % 10, b % 10, &vaium); a = a / 10; b = b / 10; soma = soma + s * mult; mult = mult * 10; } soma = soma + vaium * mult; printf("A soma binaria de %d com %d = %d \n", ao, bo, soma); return 0; }