В тази статия ще ви запозная с една проста, но важна концепция, която е добавяне на две числа в Java. Но преди да продължите напред, бих ви предложил да се запознаете с „Какво е Java“, характеристиките на Java и как можете да инсталирате Java на вашата система, което можете да намерите в предишните . Това ще ви помогне бързо и лесно да вземете идващите концепции. Останалите блогове в тази поредица от уроци по Java, написани от нашия експертите ще обхванат задълбочено всички важни теми на Java и J2EE,
Следните указания ще бъдат обхванати в тази статия,
- Метод 1
- Метод 2
- Повторен унар оператор
- Таблица на първоначалната линия
- Побитов и оператор на Bitshift в Java
- Рекурсия
Нека започнем тогава,
Добавяне на две числа в Java
Метод 1
Нека разберем директно, като разработим програма в Java, за да отпечатаме „Добавяне на две числа“ на екрана.
Клас AddTwoNumbers {public static void main (String [] args) {System.out.println („Добавянето на две числа 10 + 20 е“ + (10 + 20))}}
Изход
Трябва да разберем това, че тук числата се добавят директно, казват 10 + 20, което е 30. Но това, което получаваме числа от конзолата. В този случай стойностите ще се съхраняват в променлива. По отношение на Java променливата String array ще съхранява тези числа въз основа на техния индекс.
публичен клас Main {public static void main (String [] args) {System.out.println ('Добавяне на две числа' + args [0] + '+' + args [1] + 'е' + (args [0 ] + аргументи [1]))}}
Резултатът за това ще бъде както е показано в конзолата, когато предадем едно и също число, което е 10 и 20.
Е, резултатът, който получихме тук, не е желан 30. Запомнете аргументите String [], всеки вход, който вземете от конзолата, е представен в String. Така че тук трябва да преобразуваме тези низове в цяло число, за да изчислим добавянето.
публичен клас Main {public static void main (String [] args) {//System.out.println('Добавяне на две числа '+ args [0] +' + '+ args [1] +' is '+ (args [0] + аргументи [1])) System.out.println ('Добавяне на две числа' + аргументи [0] + '+' + аргументи [1] + 'е' + (Integer.parseInt (аргументи [0] ) + Integer.parseInt (аргументи [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))}}
Излизам
30
10
Следва в тази статия за Добавяне на две числа в Java
Повторен унар оператор
Това включва цикъл while, основната идея зад това е да доведе до нула стойността на първия операнд. И да продължи да инкриминира съответния му втори операнд със същото количество итерации. Разгледайте сами примера по-долу.
публичен клас HelloWorld {публична статична празнота main (String [] args) {System.out.println ('add' + add (10, 20)) System.out.println ('add' + add (-10, 20)) } публичен статичен int добавяне (int a, int b) {//System.out.println ('--->' + a + ':' + b) докато (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) връщане b}}
Излизам
$ javac HelloWorld.java $ java -Xmx128M -Xms16M HelloWorld добавете 30 добавете 10
Следва в тази статия за Добавяне на две числа в Java
Побитов и оператор на Bitshift в Java
Можем също така да добавим две цели числа, като използваме XOR побитов оператор, а пренасянето може да бъде получено от оператора AND. За да добавим пренос в сума, трябва да използваме подписан ляв оператор за смяна. Как става това? Нека първо видим пример.
публичен клас HelloWorld {публична статична невалидна основна (String [] аргументи) {System.out.println ('Добавяне с помощта на + ve' + addUsingBits (10, 20)) System.out.println ('Добавяне с използване на -ve' + addUsingBits ( -10, 20))} публичен статичен int addUsingBits (int a, int b) {while (b! = 0) {int carry = (a & b) a = a ^ bb = carry<< 1 } return a } }
Изход
$ javac HelloWorld.java
$ java -Xmx128M -Xms16M HelloWorld
Добавяне с помощта на + ve 30
Добавяне с помощта на -ve 10
Винаги помнете, че операцията XOR се използва за оценка на добавяне на два бита. И операцията се използва за оценка на носенето на два бита. Нека да дисектираме това, нали? Като следваме входните стойности, нека вземем a = 10 и b = 20 за първо условие.
Операция | Оценка на израза | Двоичен еквивалент | Десетична стойност |
да се | 10 алгоритъм за сортиране на сливане c ++ | 00001010 | 10 |
б | двайсет | 00010100 | двайсет |
докато (b! = 0) | вярно | ||
int carry = (a & b) | 10 и 20 | 0 | 0 |
a = a ^ b | 10 ^ 20 | 00011110 | 30 |
b = пренасяне<< 1 | 0<< 1 | 0 | 0 |
връщане a | 30 | 00011110 | 30 |
Сега, нека вземем отрицателен вход, да кажем -10 за a. Нека разгледаме какво се случва в таблицата по-долу.Това ни позволява да се придвижваме, докато десетичната стойност на пренасянето стане отрицателна.
Следва в тази статия за Добавяне на две числа в Java
Таблица на първоначалната линия
Операция | Оценка на израза | Двоичен еквивалент | Десетична стойност |
да се | -10 | 11110110 | -10 |
б | двайсет | 00010100 | двайсет |
докато (b! = 0) | вярно | ||
int carry = (a & b) | -10 и 20 | 00010100 | двайсет |
a = a ^ b | -10 ^ 20 | 11100010 | -30 |
b = пренасяне<< 1 е-а и има-връзка в Java | двайсет<< 1 | 00101000 | 40 |
Цикъл 1.
Операция | Оценка на израза | Двоичен еквивалент | Десетична стойност |
да се | -30 | 11100010 | -30 |
б | 40 | 00101000 | 40 |
докато (b! = 0) | вярно | ||
int carry = (a & b) | -30 и 40 | 00100000 | 32 |
a = a ^ b | -30 ^ 40 | 11001010 | -54 |
b = пренасяне<< 1 | 32<< 1 | 00101000 | 64 |
И така нататък & hellip, докато цикълът се окаже b = 0 за краткост, не всички резултати са показани тук. Така че таблицата по-долу представлява последния цикъл в тази операция.
Операция | Оценка на израза | Двоичен еквивалент | Десетична стойност |
да се | -2147483638 | 11111111111111111111111111111111100000000000000000000000000000001010 | -2147483638 |
б | -2147483648 | 11111111111111111111111111111111100000000000000000000000000000000000 | -2147483648 |
докато (b! = 0) | вярно | ||
int carry = (a & b) | -2147483638 & -2147483648 | 11111111111111111111111111111111100000000000000000000000000000000000 | -2147483648 |
a = a ^ b | -2147483638 ^ -2147483648 | 00001010 | 10 |
b = пренасяне<< 1 | -2147483648<< 1 | 0 | 0 |
връщане a | 10 | 00001010 | 10 |
Така че е изчислено добавянето. Фу! толкова за мисълта. Само си помислете, ако това изчисление е направено ръчно от хора, главно бинарни изчисления.
Следва в тази статия за Добавяне на две числа в Java
Рекурсия
Също така можем да напишем горната програма, използвайки рекурсия. Частта за изчисление се различава леко, нека разгледаме това за домашна работа, нали? Ще дам извлечението тук за рекурсията, а вие се опитайте да изградите своя собствена таблица, така че да знаете как работи вътрешно. Също така, няма нужда да обирате всичко това, което е само с цел представяне, освен ако не се вълнувате от вътрешната работа тук.
публичен статичен int addUsingRecursion (int a, int b) {if (b == 0) връща int int = a ^ b int carry = (a & b)<< 1 return add(sum, carry) }
Всичко това беше за добавяне на две числа в Java с използване на + оператор и без използване на + оператор. Причината, поради която се избира нито едно от тях, изцяло ще зависи от нуждите и изискванията на проекта.
Не съм оценил и тествал работата на двата сценария, за да изляза с ефективност. Предполагам, че това ще влезе в сила само ако изграждате ракетата и я доставяте в космоса.
Обясних само числа, свързани с Цели числа за краткост, която има свой собствен лимит на паметта. Оставям на вас да проучите допълнително с помощта на float, double и т.н. Винаги помнете, че ако надвишите граничната стойност на примитивните типове, резултатът ще покаже различен отговор.
Вижте от Edureka, доверена компания за онлайн обучение с мрежа от над 250 000 доволни учащи, разпространени по целия свят. Ние сме тук, за да ви помогнем във всяка стъпка по вашето пътуване, за да станете най-добрият, ние измисляме учебна програма, предназначена за студенти и професионалисти, които искат да бъдат Java Developer.