I denne artikel vil jeg introducere dig til et simpelt, men alligevel vigtigt koncept, der er tilføjelse af to tal i Java. Men inden du går videre, vil jeg foreslå dig at blive fortrolig med 'Hvad er Java', funktioner i Java, og hvordan kan du installere Java på dit system, som du kan finde i tidligere . Dette hjælper dig med at få fat i de kommende koncepter hurtigt og nemt. De andre blogs i denne Java-tutorial-serie skrevet af vores eksperter vil dække alle de vigtige emner i Java og J2EE i dybden,
Følgende punkter vil blive dækket i denne artikel,
- Metode 1
- Metode 2
- Gentagen unary operatør
- Indledende sløjfetabel
- Bitvis og Bitshift-operatør i Java
- Rekursion
Så lad os komme i gang dengang,
Tilføjelse af to numre i Java
Metode 1
Lad os forstå det direkte ved at udvikle et program i Java til at udskrive 'Tilføjelse af to tal' på skærmen.
Klasse AddTwoNumbers {public static void main (String [] args) {System.out.println (“Tilføjelse af to tal 10 + 20 er” + (10 + 20))}}
Produktion
Vi skal forstå dette, at her tilføjes tal direkte, siger 10 + 20, der er 30. Men hvad vi får tal fra konsollen. I så fald gemmes værdierne i en variabel. Med hensyn til Java vil String-array-variablen gemme disse tal baseret på deres indeks.
public class Main {public static void main (String [] args) {System.out.println ('Tilføjelse af to tal' + args [0] + '+' + args [1] + 'er' + (args [0 ] + args [1]))}}
Outputtet for dette vil være som vist i konsollen, når vi passerer det samme nummer, der er 10 og 20.
Det resultat, vi fik her, er ikke ønsket 30. Husk, at String [] argumenterer, at alle input, du tager fra konsollen, er repræsenteret i String. Så her er vi nødt til at konvertere disse strenge til heltal for at beregne tilføjelsen.
public class Main {public static void main (String [] args) {//System.out.println('Tilføjelse af to tal '+ args [0] +' + '+ args [1] +' er '+ (args [0] + args [1])) System.out.println ('Tilføjelse af to tal' + args [0] + '+' + args [1] + 'er' + (Integer.parseInt (args [0] ) + Integer.parseInt (args [1])))}}
Produktion
Nu er det ønskede output, hvad vi ønsker. Det er tilføjelsen af 10, og 20 er 30, efter at vi har analyseret det fra streng til heltal.
Næste i denne artikel om tilføjelse af to numre i Java
Metode 2
Brug af subtraktionsoperatør: Vi kan bruge subtraktion til at tilføje to tal, så det negerer den negative værdi og derved resulterer i addition.
offentlig klasse 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 (tilføj (-10, 20))}}
Ouput
30
10
Næste i denne artikel om tilføjelse af to numre i Java
Gentagen unary operatør
Dette involverer mens loop, den grundlæggende idé bag dette er at bringe værdien af første operand til nul. Og for at fortsætte med at øge sin tilsvarende anden operand med samme antal iterationer. Overvej selv nedenstående eksempel.
offentlig klasse HelloWorld {public static void main (String [] args) {System.out.println ('add' + add (10, 20)) System.out.println ('add' + add (-10, 20)) } offentlig statisk int tilføjelse (int a, int b) {// System.out.println ('--->' + a + ':' + b) mens (a> 0) {// System.out.println ('mens a> 0 --->' + a + ':' + b) b ++ a--} mens (a<0) { //System.out.println('while a ' + a + ' : ' + b) b-- a++ } //System.out.println('return b--->'+ a +': '+ b) returner b}}
Ouput
$ javac HelloWorld.java $ java -Xmx128M -Xms16M HelloWorld tilføj 30 tilføj 10
Næste i denne artikel om tilføjelse af to numre i Java
Bitvis og Bitshift-operatør i Java
Vi kan også tilføje to heltal ved hjælp af XOR bitvis operator og carry kan opnås af AND operator. For at tilføje carry in sum er vi nødt til at bruge signeret venstre skiftoperatør. Hvordan sker dette? Lad os først se et eksempel.
offentlig klasse HelloWorld {public static void main (String [] args) {System.out.println ('Addition using + ve' + addUsingBits (10, 20)) System.out.println ('Addition using -ve' + addUsingBits ( -10, 20))} offentlig statisk int addUsingBits (int a, int b) {mens (b! = 0) {int carry = (a & b) a = a ^ bb = carry<< 1 } return a } }
Produktion
$ javac HelloWorld.java
$ java -Xmx128M -Xms16M HelloWorld
Tilføjelse ved hjælp af + ve 30
Tilsætning ved hjælp af -ve 10
Husk altid, at XOR-operation bruges til at evaluere tilføjelse af to bits. AND-operation bruges til at evaluere bæring af to bits. Lad os dissekere dette, skal vi? Går vi efter inputværdierne, lad os tage a = 10 og b = 20 for den første betingelse.
Operation | Ekspression evaluering | Binær ækvivalent | Decimalværdi |
til | 10 | 00001010 | 10 |
b hvornår man skal bruge dette i java | tyve | 00010100 | tyve |
mens (b! = 0) | sand | ||
int carry = (a & b) | 10 & 20 | 0 | 0 |
a = a ^ b | 10 ^ 20 | 00011110 | 30 |
b = bære<< 1 | 0<< 1 | 0 | 0 |
returnere a | 30 | 00011110 | 30 |
Lad os nu tage et negativt input, sige -10 for en. Lad os undersøge, hvad der sker i nedenstående tabel.Dette lader os løkke, indtil den decimale værdi af bærer bliver negativ.
Næste i denne artikel om tilføjelse af to numre i Java
Indledende sløjfetabel
Operation | Ekspression evaluering | Binær ækvivalent | Decimalværdi |
til | -10 | 11110110 | -10 |
b | tyve | 00010100 | tyve |
mens (b! = 0) | sand | ||
int carry = (a & b) | -10 & 20 | 00010100 | tyve |
a = a ^ b | -10 ^ 20 | 11100010 | -30 |
b = bære<< 1 | tyve<< 1 | 00101000 | 40 |
Sløjfe 1.
Operation | Ekspression evaluering | Binær ækvivalent | Decimalværdi |
til | -30 | 11100010 | -30 |
b | 40 | 00101000 | 40 |
mens (b! = 0) | sand | ||
int carry = (a & b) | -30 & 40 | 00100000 | 32 |
a = a ^ b | -30 ^ 40 hvad ide at bruge til java | 11001010 | -54 |
b = bære<< 1 | 32<< 1 | 00101000 | 64 |
Og så videre & hellip indtil loop viser sig at være b = 0 for kortfattethed, ikke alt resultat vises her. Så nedenstående tabel repræsenterer sidste løkke i denne operation.
Operation | Ekspression evaluering | Binær ækvivalent | Decimalværdi |
til | -2147483638 | 1111111111111111111111111111100000000000000000000000000000001010 | -2147483638 |
b | -2147483648 | 1111111111111111111111111111100000000000000000000000000000000000 | -2147483648 |
mens (b! = 0) | sand | ||
int carry = (a & b) | -2147483638 & -2147483648 | 1111111111111111111111111111100000000000000000000000000000000000 | -2147483648 |
a = a ^ b | -2147483638 ^ -2147483648 | 00001010 | 10 |
b = bære<< 1 | -2147483648<< 1 | 0 | 0 |
returnere a | 10 | 00001010 | 10 |
Så sådan blev beregningen beregnet. Pis! så meget for tanken. Tænk bare, hvis denne beregning blev udført manuelt af mennesker, hovedsageligt binære beregninger.
Næste i denne artikel om tilføjelse af to numre i Java
Rekursion
Vi kan også skrive ovenstående program ved hjælp af rekursion. Beregningsdelen adskiller sig lidt, lad os overveje dette til hjemmearbejde for dig, skal vi? Jeg vil give uddraget her til rekursionen, og du prøver at opbygge dit eget bord, så du ved, hvordan det fungerer internt. Det er heller ikke nødvendigt at kruske alt dette, der kun er til repræsentationsformål, medmindre du er begejstret for interne funktioner her.
offentlig statisk int addUsingRecursion (int a, int b) {hvis (b == 0) returnerer en int sum = a ^ b int carry = (a & b)<< 1 return add(sum, carry) }
Dette var alt sammen for tilføjelsen af to numre i Java med brug af + operator og uden brug af + operator. Årsagen bag at gå til en af disse vil helt afhænge af projektets behov og krav.
Jeg har ikke evalueret og testet, hvordan begge scenarier fungerer for at komme med ydeevne. Jeg antager, at det kun vil træde i kraft, hvis du bygger raketten og leverer den til rummet.
Jeg har kun forklaret tal relateret til heltal for kortfattethed, som har sin egen hukommelsesgrænse. Jeg overlader det til dig at undersøge yderligere ved hjælp af float, double osv. Husk altid, at hvis du overskrider grænseværdien for primitive typer, vil resultatet vise et andet svar.
Tjek af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden. Vi er her for at hjælpe dig med hvert trin på din rejse, for at blive dit bedste, kommer vi med en læseplan, der er designet til studerende og fagfolk, der ønsker at være Java-udvikler.