Neste artigo, vou apresentar a você um conceito simples, mas importante, que é a adição de dois números em Java. Mas antes de prosseguir, sugiro que você se familiarize com “O que é Java”, recursos do Java e como você pode instalar o Java em seu sistema, que você pode encontrar em . Isso o ajudará a compreender os próximos conceitos com rapidez e facilidade. Os outros blogs nesta série de tutoriais Java escritos por nosso especialistas cobrirão todos os tópicos importantes de Java e J2EE em profundidade,
As dicas a seguir serão abordadas neste artigo,
- Método 1
- Método 2
- Operador Unário Repetido
- Tabela de Loop Inicial
- Operador bit a bit e bithift em Java
- Recursão
Então, vamos começar,
Adição de dois números em Java
Método 1
Vamos entender diretamente desenvolvendo um programa em Java para imprimir 'Adição de dois números' na tela.
Classe AddTwoNumbers {public static void main (String [] args) {System.out.println (“A adição de dois números 10 + 20 é” + (10 + 20))}}
Resultado
Devemos entender que, aqui os números são adicionados diretamente, digamos 10 + 20 que é 30. Mas o que obtemos os números do console. Nesse caso, os valores serão armazenados em uma variável. Em termos de Java, a variável de matriz String armazenará esses números com base em seu índice.
public class Main {public static void main (String [] args) {System.out.println ('Adição de dois números' + args [0] + '+' + args [1] + 'is' + (args [0 ] + argumentos [1]))}}
A saída para isso será mostrada no Console quando passarmos o mesmo número que é 10 e 20.
Eh, o resultado que obtivemos aqui não é o desejado 30. Lembre-se de String [] args, cada entrada que você obtém do console é representada em String. Portanto, aqui temos que converter essas Strings em Integer para calcular a adição.
public class Main {public static void main (String [] args) {//System.out.println('Adição de dois números '+ args [0] +' + '+ args [1] +' é '+ (args [0] + args [1])) System.out.println ('Adição de dois números' + args [0] + '+' + args [1] + 'é' + (Integer.parseInt (args [0] ) + Integer.parseInt (args [1])))}}
Resultado
Agora, a saída desejada é o que queremos. Isso é a adição de 10 e 20 é 30 depois de analisá-lo de String para Integer.
Próximo neste artigo sobre adição de dois números em Java
Método 2
Usando o operador de subtração: Podemos usar a subtração para adicionar dois números de forma que ele negue o valor negativo e, portanto, resulte em adição.
public class AddTwoNumbers {public static int add (int a, int b) {return a - (-b)} public static void main (String [] args) {System.out.println (add (10, 20)) System. out.println (add (-10, 20))}}
Ouput
30
como classificar um array c ++
10
Próximo neste artigo sobre adição de dois números em Java
Operador Unário Repetido
Isso envolve o loop while, a ideia básica por trás disso é trazer o valor do primeiro operando para zero. E continuar aumentando seu segundo operando correspondente na mesma quantidade de iterações. Considere o exemplo abaixo você mesmo.
public class HelloWorld {public static void main (String [] args) {System.out.println ('adicionar' + adicionar (10, 20)) System.out.println ('adicionar' + adicionar (-10, 20)) } public static int add (int a, int b) {//System.out.println ('--->' + a + ':' + b) while (a> 0) {//System.out.println ('enquanto a> 0 --->' + a + ':' + b) b ++ a--} enquanto (a<0) { //System.out.println('while a ' + a + ' : ' + b) b-- a++ } //System.out.println('return b--->'+ a +': '+ b) retornar b}}
Ouput
$ javac HelloWorld.java $ java -Xmx128M -Xms16M HelloWorld adicionar 30 adicionar 10
Próximo neste artigo sobre adição de dois números em Java
Operador bit a bit e bithift em Java
Também podemos fazer a adição de dois inteiros usando o operador bit a bit XOR e o transporte pode ser obtido pelo operador AND. Para adicionar o carry in sum, precisamos usar o operador de deslocamento à esquerda com sinal. Como isso acontece? Vamos primeiro ver um exemplo.
public class HelloWorld {public static void main (String [] args) {System.out.println ('Adição usando + ve' + addUsingBits (10, 20)) System.out.println ('Adição usando -ve' + addUsingBits ( -10, 20))} public static int addUsingBits (int a, int b) {while (b! = 0) {int carry = (a & b) a = a ^ bb = carry<< 1 } return a } }
Resultado
$ javac HelloWorld.java
$ java -Xmx128M -Xms16M HelloWorld
Adição usando + ve 30
Adição usando -ve 10
Lembre-se sempre de que a operação XOR é usada para avaliar a adição de dois bits. A operação AND é usada para avaliar o transporte de dois bits. Vamos dissecar isso, certo? Indo pelos valores de entrada, vamos tomar a = 10 eb = 20 para a primeira condição.
Operação | Avaliação de expressão | Equivalente binário | Valor Decimal |
para | 10 | 00001010 | 10 |
b | vinte | 00010100 | vinte |
enquanto (b! = 0) | verdade | ||
int carry = (a & b) | 10 e 20 | 0 | 0 |
a = a ^ b | 10 ^ 20 | 00011110 | 30 |
b = transportar<< 1 | 0<< 1 | 0 | 0 |
devolver um | 30 | 00011110 | 30 |
Agora, vamos pegar uma entrada negativa, digamos -10 para um. Vamos examinar o que acontece na tabela abaixo.Isso nos permite entrar em loop até que o valor decimal de transporte seja negativo.
Próximo neste artigo sobre adição de dois números em Java
Tabela de Loop Inicial
Operação | Avaliação de expressão | Equivalente binário | Valor Decimal |
para | -10 | 11110110 | -10 |
b | vinte | 00010100 | vinte |
enquanto (b! = 0) | verdade | ||
int carry = (a & b) | -10 e 20 | 00010100 | vinte |
a = a ^ b | -10 ^ 20 | 11100010 | -30 |
b = transportar<< 1 | vinte<< 1 | 00101000 | 40 |
Loop 1.
Operação | Avaliação de expressão | Equivalente binário | Valor Decimal |
para | -30 | 11100010 | -30 |
b | 40 | 00101000 | 40 |
enquanto (b! = 0) | verdade | ||
int carry = (a & b) | -30 e 40 | 00100000 | 32 |
a = a ^ b | -30 ^ 40 | 11001010 | -54 |
b = transportar<< 1 | 32<< 1 | 00101000 | 64 |
E assim por diante até que o loop seja b = 0 por brevidade, nem todos os resultados são mostrados aqui. Portanto, a tabela abaixo representa o último loop nesta operação.
Operação | Avaliação de expressão | Equivalente binário | Valor Decimal |
para | -2147483638 | 1111111111111111111111111111111110000000000000000000000000001010 | -2147483638 |
b | -2147483648 | 11111111111111111111111111111110000000000000000000000000000000 | -2147483648 |
enquanto (b! = 0) | verdade | ||
int carry = (a & b) | -2147483638 e -2147483648 | 11111111111111111111111111111110000000000000000000000000000000 | -2147483648 |
a = a ^ b | -2147483638 ^ -2147483648 | 00001010 qual é a diferença entre hashmap e hashtable | 10 |
b = transportar<< 1 | -2147483648<< 1 | 0 | 0 |
devolver um | 10 | 00001010 | 10 |
Então é assim que a adição foi calculada. Ufa! tanto para o pensamento. Imagine se esse cálculo foi feito manualmente por humanos, principalmente cálculos binários.
A seguir neste artigo sobre adição de dois números em Java
Recursão
Também podemos escrever o programa acima usando recursão. A parte do cálculo difere ligeiramente, vamos considerar isso como lição de casa para você, certo? Vou dar o extrato aqui para a recursão e você tenta construir sua própria tabela para que você saiba como funciona internamente. Além disso, não há necessidade de mexer em tudo isso, que é apenas para fins de representação, a menos que você esteja animado com o funcionamento interno aqui.
public static int addUsingRecursion (int a, int b) {if (b == 0) retorna a int sum = a ^ b int carry = (a & b)<< 1 return add(sum, carry) }
Isso tudo foi para a adição de dois números em Java com o uso do operador + e sem o uso do operador +. A razão por trás de qualquer uma dessas opções dependerá inteiramente da necessidade e dos requisitos do projeto.
Não avaliei e testei o funcionamento de ambos os cenários para chegar ao desempenho. Acho que isso só entrará em vigor se você estiver construindo o foguete e entregando-o ao espaço.
Eu expliquei apenas os números relacionados aos inteiros para concisão, que tem seu próprio limite de memória. Deixo isso para você explorar mais a fundo o uso de float, double, etc. Lembre-se sempre de que se você exceder o valor limite dos tipos primitivos, o resultado mostrará uma resposta diferente.
Confira o pela Edureka, uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo. Estamos aqui para ajudá-lo em todas as etapas de sua jornada, para que você se torne o seu melhor, criamos um currículo que é projetado para estudantes e profissionais que desejam ser um Desenvolvedor Java.