В этой статье я собираюсь познакомить вас с простой, но важной концепцией сложения двух чисел в Java. Но прежде чем двигаться дальше, я бы посоветовал вам ознакомиться с «Что такое Java», особенностями Java и как вы можете установить Java в своей системе, которые вы можете найти в предыдущем . Это поможет вам быстро и легко усвоить новые концепции. Другие блоги в этой серии руководств по Java написаны нашим эксперты подробно рассмотрят все важные темы Java и J2EE,
Следующие указатели будут рассмотрены в этой статье,
- Способ 1
- Способ 2
- Повторяющийся унарный оператор
- Начальная таблица цикла
- Оператор побитового и битового сдвига в Java
- Рекурсия
Итак, давайте тогда приступим,
Сложение двух чисел в Java
Способ 1
Давайте разберемся напрямую, разработав программу на Java, которая выводит на экран «Сложение двух чисел».
Класс AddTwoNumbers {public static void main (String [] args) {System.out.println («Сложение двух чисел 10 + 20 равно» + (10 + 20))}}
Вывод
Мы должны понимать, что здесь числа добавляются напрямую, скажем, 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
Использование оператора вычитания: Мы можем использовать вычитание, чтобы сложить два числа, так что отрицательное значение будет инвертировано, что приведет к сложению.
открытый класс 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-разработчиками.