Soma entre valores sem utilizar operadores aritméticos apenas operadores lógicos

Meu professor pediu para fazer uma soma de dois valores inteiros de até 8 bits, sem utilizar estrutura condicional, esses 2 valores tem que ser informado pelo usuário e logo após do usuário inserir o primeiro numero deve ser mostrado a ele este valor em base binaria e assim para o segundo valor, logo após devera ser efetuada a soma dos números digitados pelo usuário, usando apenas operações
binárias da linguagem c++, e para finalizar o programa devera mostrar o resultado obtido como um valor binário e como um valor decimal.

Help Me pleaseee :slight_smile:

Os passos são:

  • Leia os dois números;
  • Converta-os em binário (você deve conhecer o algoritmo), armazenando cada dígito de cada um em um array de 8 posições (um array para cada número);
  • Percorra os dois arrays, da direita para a esquerda, armazenando o resultado das operações (0+0=0, 0+1=1, 1+0=1 e 1+1=0 (vai um)) em um terceiro array.
  • Converta o valor do terceiro array em decimal (vc deve conhecer o algoritmo);
  • Mostre o valor convertido e os valores do array;
  • Tome cuidado com o bit de sinal (deve haver?) e com overflow (a soma dos dois primeiros bits mais significativos podem gerar um “vai um” para o nono bit). Seu professor deve ter explicado o que fazer nesses casos;
  • Um inteiro de 8 bits sem sinal deve variar de 0 a 255 ou de -128 a 127 caso tenha sinal. Sendo assim, por exemplo, a soma de 130 (1000 0010) com 130 (1000 0010) (sem sinal) já deve gerar overflow, pois se for um inteiro de 8 bits, ao invés de obter 100000100 (260) vc deve obter 100 (4).

Bora trabalhar agora pra implementar. Boa sorte.

1 curtida

@Gabeews Olá! Para esse desafio, talvez, esperam assistir tua competência com operadores lógicos binários; se não estudou estes operadores, então não tem uma ‘expertise’ necessária a uma solução.

Entendo que, exige-se sequência de declarações próximas à operação natural [a que faz de cabeça] expressa em código com uso destes operadores.

Suponho que esperam pelos operadores: XOR, OR, NOT, AND todos os lógicos binários, e não lógicos condicionais, sendo respectivamente: ^, |, !, &, porque de acordo com título do desafio, suponha-se uma adição e der terminante da soma sem uso de operador aritmético e estruturas condicionais (IF, LOOPS ou recursividade) — acredito que esse é núcleo do problema.