Как реализовать сложение двух чисел в Java?



В этой статье вы познакомитесь с простой, но важной концепцией сложения двух чисел в Java с демонстрацией.

В этой статье я собираюсь познакомить вас с простой, но важной концепцией сложения двух чисел в Java. Но прежде чем двигаться дальше, я бы посоветовал вам ознакомиться с «Что такое Java», особенностями Java и как вы можете установить Java в своей системе, которые вы можете найти в предыдущем . Это поможет вам быстро и легко усвоить новые концепции. Другие блоги в этой серии руководств по Java написаны нашим эксперты подробно рассмотрят все важные темы Java и J2EE,

Следующие указатели будут рассмотрены в этой статье,





Итак, давайте тогда приступим,

Сложение двух чисел в Java

Способ 1

Давайте разберемся напрямую, разработав программу на Java, которая выводит на экран «Сложение двух чисел».



Класс AddTwoNumbers {public static void main (String [] args) {System.out.println («Сложение двух чисел 10 + 20 равно» + (10 + 20))}}

Вывод

Вывод - сложение двух чисел в Java - Edureka

Мы должны понимать, что здесь числа добавляются напрямую, скажем, 10 + 20, то есть 30. Но то, что мы получаем числа с консоли. В этом случае значения будут сохранены в переменной. С точки зрения Java, переменная массива String будет хранить эти числа на основе их индекса.



открытый класс Main {public static void main (String [] args) {System.out.println ('Сложение двух чисел' + args [0] + '+' + args [1] + 'is' + (args [0 ] + args [1]))}}

Вывод для этого будет таким, как показано в консоли, когда мы передадим одно и то же число - 10 и 20.

Эх, результат, который мы получили здесь, нежелателен 30. Помните String [] args, каждый ввод, который вы берете с консоли, представлен в String. Итак, здесь мы должны преобразовать эти строки в целые числа, чтобы вычислить сложение.

открытый класс Main {public static void main (String [] args) {//System.out.println( 'Сложение двух чисел' + args [0] + '+' + args [1] + 'is' + (args [0] + args [1])) System.out.println ('Сложение двух чисел' + args [0] + '+' + args [1] + 'is' + (Integer.parseInt (args [0] ) + Integer.parseInt (args [1])))}}

Вывод

Теперь желаемый результат - это то, что мы хотим. То есть добавление 10 и 20 составляет 30 после того, как мы разобрали его из String в Integer.

Далее в этой статье о сложении двух чисел в Java

Способ 2

  1. Использование оператора вычитания: Мы можем использовать вычитание, чтобы сложить два числа, так что отрицательное значение будет инвертировано, что приведет к сложению.

открытый класс AddTwoNumbers {общедоступный статический int add (int a, int b) {return a - (-b)} public static void main (String [] args) {System.out.println (add (10, 20)) System. out.println (добавить (-10, 20))}}

Ouput

30

10

Далее в этой статье о сложении двух чисел в Java

Повторяющийся унарный оператор

Это включает в себя цикл while, основная идея которого состоит в том, чтобы обнулить значение первого операнда. И продолжать увеличивать соответствующий второй операнд на такое же количество итераций. Самостоятельно рассмотрите приведенный ниже пример.

открытый класс HelloWorld {public static void main (String [] args) {System.out.println ('add' + add (10, 20)) System.out.println ('add' + add (-10, 20)) } public static int add (int a, int b) {//System.out.println ('--->' + a + ':' + b) while (a> 0) {//System.out.println ('while a> 0 --->' + a + ':' + b) b ++ a--} while (a<0) { //System.out.println('while a ' + a + ' : ' + b) b-- a++ } //System.out.println('return b--->'+ a +': '+ b) return b}}

Ouput

$ javac HelloWorld.java $ java -Xmx128M -Xms16M HelloWorld добавить 30 добавить 10

Далее в этой статье о сложении двух чисел в Java

Оператор побитового и битового сдвига в Java

Мы также можем сложить два целых числа с помощью побитового оператора XOR, а перенос можно получить с помощью оператора AND. Чтобы добавить перенос в сумму, нам нужно использовать знаковый оператор сдвига влево. Как это происходит? Давайте сначала посмотрим на пример.

открытый класс HelloWorld {public static void main (String [] args) {System.out.println ('Добавление с использованием + ve' + addUsingBits (10, 20)) System.out.println ('Добавление с использованием -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 } }

Вывод

роли и обязанности разработчиков hadoop

$ javac HelloWorld.java

$ java -Xmx128M -Xms16M HelloWorld

Добавление с помощью + ve 30

Сложение с использованием -ve 10

Всегда помните, что операция XOR используется для оценки сложения двух битов. Операция И используется для оценки переноса двух битов. Давайте рассмотрим это, не так ли? Исходя из входных значений, возьмем a = 10 и b = 20 в качестве первого условия.

Операция

Оценка выражения

Двоичный эквивалент

Десятичное значение

к

10

00001010

10

б

двадцать

00010100

двадцать

а (b! = 0)

правда

int carry = (а и б)

10 и 20

0

0

а = а ^ б

10 ^ 20

00011110

30

b = носить<< 1

0<< 1

0

0

вернуть

30

00011110

30

Теперь давайте возьмем отрицательный вход, скажем -10 для. Давайте посмотрим, что происходит в приведенной ниже таблице.Это позволяет нам зацикливаться, пока десятичное значение переноса не станет отрицательным.

Далее в этой статье о сложении двух чисел в Java

Начальная таблица цикла

Операция

Оценка выражения

Двоичный эквивалент

Десятичное значение

к

-10

11110110

-10

б

двадцать

00010100

двадцать

а (b! = 0)

правда

int carry = (а и б)

-10 и 20

00010100

двадцать

а = а ^ б

-10 ^ 20

11100010

-30

b = носить<< 1

двадцать<< 1

00101000

40

Петля 1.

Операция

Оценка выражения

Двоичный эквивалент

Десятичное значение

к

-30

11100010

-30

б

40

00101000

40

а (b! = 0)

правда

int carry = (а и б)

-30 и 40

00100000

32

а = а ^ б

-30 ^ 40

11001010

-54

b = носить<< 1

32<< 1

00101000

64

И так далее & hellip, пока для краткости цикл не окажется равным b = 0, здесь показан не весь результат. В таблице ниже представлен последний цикл этой операции.

Операция

Оценка выражения

Двоичный эквивалент

Десятичное значение

к

как закрыть Java-приложение

-2147483638

11111111111111111111111111111110000000000000000000000000001010

-2147483638

б

-2147483648

11111111111111111111111111111110000000000000000000000000000000

-2147483648

а (b! = 0)

правда

int carry = (а и б)

-2147483638 и -2147483648

11111111111111111111111111111110000000000000000000000000000000

-2147483648

а = а ^ б

-2147483638 ^ -2147483648

00001010

10

b = носить<< 1

-2147483648<< 1

0

0

вернуть

10

00001010

10

Вот как рассчитывалась прибавка. Уф! так много для мысли. Подумайте только, если бы этот расчет производился вручную людьми, в основном двоичными вычислениями.

Далее в этой статье о сложении двух чисел в Java

Рекурсия

Мы также можем написать указанную выше программу, используя рекурсию. Расчетная часть немного отличается, давайте рассмотрим это в качестве домашнего задания, не так ли? Я приведу здесь отрывок для рекурсии, а вы попытаетесь создать свою собственную таблицу, чтобы знать, как она работает внутри. Кроме того, нет необходимости кричать обо всем этом только для репрезентативных целей, если вы не в восторге от внутренней работы здесь.

public static int addUsingRecursion (int a, int b) {if (b == 0) return a int sum = a ^ b int carry = (a & b)<< 1 return add(sum, carry) }

Это все для сложения двух чисел в Java с использованием оператора + и без использования оператора +. Причина выбора любого из них будет полностью зависеть от потребностей и требований проекта.

Я не оценивал и не тестировал работу обоих сценариев для определения производительности. Думаю, это вступит в силу только в том случае, если вы построите ракету и доставите ее в космос.

Для краткости я объяснил только числа, относящиеся к целым числам, у которых есть собственный предел памяти. Я оставляю это на ваше усмотрение для дальнейшего изучения использования float, double и т. Д. Всегда помните, что если вы превысите предельное значение примитивных типов, то результат покажет другой ответ.

Проверьте от Edureka, надежной компании по онлайн-обучению с сетью из более чем 250 000 довольных учащихся по всему миру. Мы здесь, чтобы помочь вам на каждом этапе вашего пути, чтобы стать лучше, мы разработали учебную программу, предназначенную для студентов и профессионалов, которые хотят стать Java-разработчиками.