segunda-feira, 29 de agosto de 2016

Dicas de Programação: Como subtrair dois números através de adições em Java?

Fácil, usando a teoria do complemento de 2!

Obs.: Para quem não sabe, complemento de 2, em resumo, é a subtração de um número binário através de uma soma (computadores antigos faziam isso para ter uma subtração).

Vamos testar? Inicialmente temos duas variáveis com os valores "100" e "8":
int a = 100;
int b = 8;

Depois, pegamos a variável "b" e invertemos seu valor através da expressão til ("~"):
b = ~b;

Somamos mais um ("++") a esta variável:
b++;

E, depois, recebemos o resultado da soma de "a" mais ("+") "b" em uma nova variável ("c"):
int c = a + b;

E veremos que o resultado é 92 (que é o resultado da expressão a - b).

O código completo:

public class Main {

    public static void main(String... args) throws Exception {
        int a = 100;
        int b = 8;
        b = ~b;
        b++;
        int c = a + b;
        System.out.println("Resultado: " + c);
    }

}

Louco não? :P

Até mais!

Nenhum comentário: