V tomto článku vám představím jednoduchý, ale důležitý koncept, který spočívá v přidání dvou čísel v Javě. Než se ale vydáte dál, doporučuji vám seznámit se s „Co je Java“, funkcemi Javy a jak si můžete nainstalovat Javu do svého systému, kterou najdete v předchozích . To vám pomůže rychle a snadno uchopit nadcházející koncepty. Ostatní blogy v této sérii výukových programů Java napsané naším odborníci se budou podrobně věnovat všem důležitým tématům Java a J2EE,
V tomto článku se budeme zabývat následujícími ukazateli,
- Metoda 1
- Metoda 2
- Opakovaný unární operátor
- Tabulka počáteční smyčky
- Bitový operátor a bitový posun v Javě
- Rekurze
Pojďme tedy začít,
Přidání dvou čísel v Javě
Metoda 1
Pojďme to pochopit přímo vytvořením programu v Javě pro tisk „Přidání dvou čísel“ na obrazovku.
Třída AddTwoNumbers {public static void main (String [] args) {System.out.println („Přidání dvou čísel 10 + 20 je“ + (10 + 20))}}
Výstup
Musíme to pochopit tak, že zde jsou čísla přidávána přímo, řekněme 10 + 20, což je 30. Ale co dostaneme čísla z konzoly. V takovém případě budou hodnoty uloženy v proměnné. Pokud jde o Javu, proměnná String array uloží tato čísla na základě jejich indexu.
public class Main {public static void main (String [] args) {System.out.println ('Add of two numbers' + args [0] + '+' + args [1] + 'is' + (args [0 ] + args [1]))}}
Výstup pro toto bude, jak je znázorněno v konzole, když předáme stejné číslo, které je 10 a 20.
Výsledek, který jsme zde dostali, není žádoucí 30. Pamatujte si String [] args, každý vstup, který si vezmete z konzoly, je zastoupen v String. Takže tady musíme převést tyto řetězce na celé číslo, abychom vypočítali sčítání.
public class Main {public static void main (String [] args) {//System.out.println('Addition of two numbers '+ args [0] +' + '+ args [1] +' is '+ (args [0] + args [1])) System.out.println ('Sčítání dvou čísel' + args [0] + '+' + args [1] + 'je' + (Integer.parseInt (args [0] ) + Integer.parseInt (args [1])))}}
Výstup
Požadovaný výstup je nyní to, co chceme. To je přidání 10 a 20 je 30 poté, co jsme jej analyzovali z řetězce na celé číslo.
Dále v tomto článku o Sčítání dvou čísel v Javě
Metoda 2
Pomocí operátoru Odčítání: Můžeme použít odčítání k přidání dvou čísel tak, že bude negovat zápornou hodnotu a bude výsledkem sčítání.
veřejná třída 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 (přidat (-10, 20))}}
Ouput
30
10
fibonacciho rekurze c ++
Dále v tomto článku o Sčítání dvou čísel v Javě
Opakovaný unární operátor
Jedná se o smyčku while, základní myšlenkou je přivést hodnotu prvního operandu na nulu. A neustále zvyšovat odpovídající druhý operand o stejné množství iterací. Zvažte níže uvedený příklad sami.
veřejná třída 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) vrátit b}}
Ouput
$ javac HelloWorld.java $ java -Xmx128M -Xms16M HelloWorld přidat 30 přidat 10
Dále v tomto článku o Sčítání dvou čísel v Javě
Bitový operátor a bitový posun v Javě
Můžeme také provést přidání dvou celých čísel pomocí bitového operátoru XOR a carry lze získat operátorem AND. Chcete-li přidat přenos do součtu, musíme použít podepsaný operátor posunu vlevo. Jak se to stane? Nejprve se podívejme na příklad.
veřejná třída HelloWorld {public static void main (String [] args) {System.out.println ('Add using + ve' + addUsingBits (10, 20)) System.out.println ('Addition using -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 } }
Výstup
$ javac HelloWorld.java
$ java -Xmx128M -Xms16M HelloWorld
Sčítání pomocí + ve 30
Přidání pomocí -ve 10
Vždy si pamatujte, že operace XOR se používá k vyhodnocení přidání dvou bitů. Operace AND se používá k vyhodnocení přenosu dvou bitů. Pojďme to rozebrat, že? Pokud jde o vstupní hodnoty, vezmeme a = 10 a b = 20 pro první podmínku.
Úkon | Vyhodnocení výrazu | Binární ekvivalent | Desetinná hodnota |
na | 10 | 00001010 | 10 |
b | dvacet | 00010100 | dvacet |
while (b! = 0) | skutečný | ||
int carry = (a & b) | 10 a 20 | 0 | 0 |
a = a ^ b | 10 ^ 20 | 00011110 | 30 |
b = nést<< 1 | 0<< 1 | 0 | 0 |
vrátit a | 30 | 00011110 | 30 |
Nyní si vezmeme záporný vstup, řekněme -10. Podívejme se, co se stane v tabulce níže.To nám umožňuje smyčku, dokud se desetinná hodnota přenosu nedostane do záporných hodnot.
Dále v tomto článku o Sčítání dvou čísel v Javě
Tabulka počáteční smyčky
Úkon | Vyhodnocení výrazu | Binární ekvivalent | Desetinná hodnota |
na | -10 | 11110110 | -10 |
b | dvacet | 00010100 | dvacet |
while (b! = 0) | skutečný | ||
int carry = (a & b) | -10 a 20 | 00010100 | dvacet |
a = a ^ b | -10 ^ 20 | 11100010 | -30 |
b = nést<< 1 | dvacet<< 1 | 00101000 | 40 |
Smyčka 1.
Úkon | Vyhodnocení výrazu | Binární ekvivalent | Desetinná hodnota |
na | -30 | 11100010 | -30 |
b | 40 | 00101000 | 40 |
while (b! = 0) | skutečný | ||
int carry = (a & b) | -30 a 40 | 00100000 | 32 |
a = a ^ b | -30 ^ 40 | 11001010 | -54 |
b = nést<< 1 | 32<< 1 co je klíčová chyba | 00101000 | 64 |
A tak dále a hellip, dokud se smyčka neukáže jako b = 0 pro stručnost, zde se nezobrazí všechny výsledky. Níže uvedená tabulka tedy představuje poslední smyčku v této operaci.
Úkon | Vyhodnocení výrazu | Binární ekvivalent | Desetinná hodnota |
na | -2147483638 | 1111111111111111111111111111110000000000000000000000000001010 | -2147483638 |
b | -2147483648 | 11111111111111111111111111111100000000000000000000000000000 | -2147483648 |
while (b! = 0) | skutečný | ||
int carry = (a & b) | -2147483638 a -2147483648 | 11111111111111111111111111111100000000000000000000000000000 | -2147483648 |
a = a ^ b | -2147483638 ^ -2147483648 | 00001010 | 10 |
b = nést<< 1 | -2147483648<< 1 | 0 | 0 |
vrátit a | 10 | 00001010 | 10 |
Takto se vypočítal přírůstek. Uf! tolik k té myšlence. Jen si pomyslete, jestli tento výpočet provedli lidé ručně, hlavně binární výpočty.
Dále v tomto článku o Sčítání dvou čísel v Javě
Rekurze
Můžeme také napsat výše uvedený program pomocí rekurze. Část pro výpočet se mírně liší, pojďme to zvážit pro domácí úkoly, že? Zde uvedu extrakt pro rekurzi a pokusíte se vytvořit vlastní tabulku, abyste věděli, jak to funguje interně. Také není třeba tohle všechno hrnek, který slouží pouze pro reprezentaci, pokud zde nejste nadšení interním fungováním.
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) }
To bylo vše pro přidání dvou čísel v Javě s použitím operátoru + a bez použití operátoru +. Důvod, proč jít za kterýmkoli z nich, bude zcela záviset na potřebě a požadavku projektu.
Nehodnotil jsem a otestoval fungování obou scénářů, abych přišel s výkonem. Myslím, že to vstoupí v platnost, pouze pokud budujete raketu a dodáváte ji do vesmíru.
Vysvětlil jsem pouze čísla týkající se celých čísel pro stručnost, která má svůj vlastní limit paměti. Nechám na vás, abyste dále prozkoumali použití float, double atd. Vždy pamatujte, že pokud překročíte mezní hodnotu primitivních typů, výsledek zobrazí jinou odpověď.
Podívejte se na Edureka, důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů po celém světě. Jsme tu, abychom vám pomohli s každým krokem na vaší cestě. Abychom se stali nejlepšími, vymyslíme učební plán určený pro studenty a profesionály, kteří chtějí být vývojářem Java.