Skip to content

Latest commit

 

History

History
executable file
·
120 lines (77 loc) · 3.38 KB

apenas-soma.md

File metadata and controls

executable file
·
120 lines (77 loc) · 3.38 KB

Operações básicas apenas com soma

WAT

Sim isso é possível!

E é assim que as coisas funcionam dentro do seu processador!

O responsável por isso é a unidade lógica e aritmética (ULA) é um circuito digital que realiza operações lógicas e aritméticas.

Os sistemas numéricos de complemento para um e complemento para dois permitem que a subtração seja realizada pela adição do minuendo com o complemento do subtraendo, simplificando o circuito lógico. Uma vantagem do complemento para dois em relação aos outros sistemas é que a representação possui apenas um zero, não possuindo um "zero negativo".

fonte: https://pt.wikipedia.org/wiki/Unidade_l%C3%B3gica_e_aritm%C3%A9tica

EM outro material eu já mostrei que podemos utilizar apenas soma e subtração, então agora irei mostrar como fazer subtração usando a soma!

Vamos revisar o que é a soma:

1+1=2
1+2=3
1+3=4
1+4=5

Basicamente seu algoritmo é:

  • some o primeiro número ele com ele mesmo
    • a quantidade de vezes referente ao outro número - 1
1+1=2 === 1+1
1+2=3 === 1+1+1
1+3=4 === 1+1+1+1
1+4=5 === 1+1+1+1+1

Tudo bem isso é fácil, agora como podemos fazer o seguinte apenas com soma?

5-4=1
4-3=1
3-2=1
2-1=1

Vou dar uma dica: pode usar apenas soma e números negativos!

Dica matadora essa né?

Você pode usar número negativo pois seu sinal é representado por 64 bits, sendo apenas 1 para seu sinal.

Então vamos pensar:

(-5)+(-4)=-9
5+4=9
5+(-4)=1

É nessa hora que você lembra do Ensino Médio e a regra de sinais:

número negativo com número negativo (1° caso)

número positivo com número positivo (2° caso)

número negativo com número positivo ou vice-versa (3° caso)

Primeiro caso:

Quando temos dois números negativos repetimos o sinal de subtração e somamos esses dois números.

Exemplos:
-12 + -8 = - (12 + 8) = - 20
-10 + -16 = - (10 + 16) = - 26
-15 + -2 = - (15 + 2) = - 17
-11 + -46 = - (11 + 46) = - 57

Segundo caso:

Quando temos dois números positivos repetimos o sinal de adição e somamos esses dois números.

Exemplos:
+12 + 8 = + (12 + 8) = + 20
+10 + 16 = + (10 + 16) = + 26
+15 + 2 = + (15 + 2) = + 17
+11 + 46 = + (11 + 46) = + 57

Terceiro caso:

Quando temos um número negativo e outro positivo ou vice-versa devemos repetir o sinal do maior número em módulo e depois devemos subtrair o maior número (em módulo) pelo menor número (também em módulo).

O módulo de um número nada mais é do que pegar o valor positivo desse número. O módulo é representado por duas barras dispostas uma no início e outra no fim do número. |-2| === 2

Exemplos:
+12 + -8 = + (|12| - |-8|) = 4
+10 + -16 = - (|-16| - |10|) = - 6
+15 + -2 = + (|15| - |-2|) = + 13
+11 + -46 = - (|-46| - |11|) = - 35

A partir desse terceiro caso já matamos a charada!

Exercício

Agora quero que você envie para esse repositório, pasta exercícios dentro da pasta basico, um arquivo nomeado seu_github_user.md com a resolução do nosso exercício:

Crie um algoritmo para a subtração e divisão utilizando apenas a soma, lembrando que você NÃO PODE USAR O OPERADOR -.