Hoe de toevoeging van twee nummers in Java te implementeren?



In dit artikel zal je kennismaken met een eenvoudig maar belangrijk concept, namelijk de toevoeging van twee getallen in Java met demonstratie.

In dit artikel ga ik je laten kennismaken met een eenvoudig maar belangrijk concept, namelijk de toevoeging van twee getallen in Java. Maar voordat u verder gaat, raad ik u aan om vertrouwd te raken met 'Wat is Java', de functies van Java en hoe u Java op uw systeem kunt installeren, wat u kunt vinden in vorige . Dit zal u helpen om de komende concepten snel en gemakkelijk te begrijpen. De andere blogs in deze Java-tutorialserie zijn geschreven door onze experts zullen alle belangrijke onderwerpen van Java en J2EE diepgaand behandelen,

De volgende tips komen in dit artikel aan bod:





Dus laten we beginnen,

Toevoeging van twee cijfers in Java

Methode 1

Laten we het direct begrijpen door een programma in Java te ontwikkelen om 'Toevoeging van twee getallen' op het scherm af te drukken.



Klasse AddTwoNumbers {public static void main (String [] args) {System.out.println ('Toevoeging van twee getallen 10 + 20 is' + (10 + 20))}}

Uitvoer

Uitvoer - Voeg twee nummers toe in Java - Edureka

We moeten dit begrijpen dat hier getallen direct worden toegevoegd, zeg 10 + 20 dat is 30. Maar wat we krijgen getallen van console. In dat geval worden de waarden opgeslagen in een variabele. In termen van Java slaat de String-arrayvariabele die getallen op op basis van hun index.



public class Main {public static void main (String [] args) {System.out.println ('Toevoeging van twee getallen' + args [0] + '+' + args [1] + 'is' + (args [0 ] + args [1]))}}

De uitvoer hiervoor is zoals weergegeven in Console wanneer we hetzelfde nummer doorgeven dat is 10 en 20.

Eh, het resultaat dat we hier hebben is niet gewenst 30. Onthoud String [] args, elke invoer die je van de console neemt, wordt weergegeven in String. Dus hier moeten we die strings omzetten in geheel getal om de optelling te berekenen.

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 ('Optelling van twee getallen' + args [0] + '+' + args [1] + 'is' + (Integer.parseInt (args [0]) ) + Geheel getal.parseInt (args [1])))}}

Uitvoer

Nu is de gewenste output wat we willen. Dat is de toevoeging van 10 en 20 is 30 nadat we het hebben geparseerd van String naar Integer.

Volgende in dit artikel over het toevoegen van twee nummers in Java

Methode 2

  1. De operator voor aftrekken gebruiken: We kunnen aftrekken gebruiken om twee getallen op te tellen, zodat de negatieve waarde teniet wordt gedaan en dus wordt opgeteld.

public class 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 (add (-10, 20))}}

Ouput

30

10

Volgende in dit artikel over het toevoegen van twee nummers in Java

Herhaalde unaire operator

Dit omvat de while-lus, het basisidee hierachter is om de waarde van de eerste operand op nul te brengen. En om de bijbehorende tweede operand te blijven verhogen met hetzelfde aantal iteraties. Overweeg zelf het onderstaande voorbeeld.

public class HelloWorld {public static void main (String [] args) {System.out.println ('add' + add (10, 20)) System.out.println ('add' + add (-10, 20)) } openbare statische 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) retourneer b}}

Ouput

$ javac HelloWorld.java $ java -Xmx128M -Xms16M HelloWorld toevoegen 30 toevoegen 10

Volgende in dit artikel over het toevoegen van twee nummers in Java

Bitwise en Bitshift-operator in Java

We kunnen ook twee gehele getallen optellen met behulp van de bitgewijze XOR-operator en carry kan worden verkregen door de AND-operator. Om carry in som toe te voegen, moeten we de ondertekende linker shift-operator gebruiken. Hoe verloopt dit? Laten we eerst een voorbeeld bekijken.

public class HelloWorld {public static void main (String [] args) {System.out.println ('Optellen met + ve' + addUsingBits (10, 20)) System.out.println ('Optellen met -ve' + addUsingBits ( -10, 20))} publieke statische int addUsingBits (int a, int b) {while (b! = 0) {int carry = (a & b) a = a ^ bb = carry<< 1 } return a } }

Uitvoer

$ javac HelloWorld.java

$ java -Xmx128M -Xms16M HalloWereld

Optellen met + ve 30

Optellen met -ve 10

Onthoud altijd dat de XOR-bewerking wordt gebruikt om de optelling van twee bits te evalueren. AND-bewerking wordt gebruikt om de overdracht van twee bits te evalueren. Laten we dit ontleden, zullen we? Laten we uitgaande van de invoerwaarden a = 10 en b = 20 nemen voor de eerste voorwaarde.

Operatie

Expressie-evaluatie

Binair equivalent

converteren dubbel naar int java

Decimale waarde

naar

10

00001010

10

b

twintig

00010100

twintig

terwijl (b! = 0)

waar

int carry = (a & b)

10 en 20

0

0

a = a ^ b

10 ^ 20

00011110

30

b = dragen<< 1

0<< 1

0

0

retourneer een

30

00011110

30

Laten we nu een negatieve invoer nemen, zeg -10 voor a. Laten we eens kijken wat er gebeurt in de onderstaande tabel.Dit laat ons in de lus totdat de decimale waarde van carry negatief wordt.

Volgende in dit artikel over het toevoegen van twee nummers in Java

Initial Loop Table

Operatie

Expressie-evaluatie

Binair equivalent

Decimale waarde

naar

-10

11110110

-10

b

twintig

00010100

twintig

terwijl (b! = 0)

waar

int carry = (a & b)

-10 en 20

00010100

twintig

a = a ^ b

-10 ^ 20

11100010

-30

b = dragen<< 1

twintig<< 1

00101000

40

Lus 1.

Operatie

Expressie-evaluatie

Binair equivalent

Decimale waarde

naar

-30

11100010

-30

hoe je een dubbel converteert naar een int java

b

40

00101000

40

terwijl (b! = 0)

waar

int carry = (a & b)

-30 en 40

00100000

32

a = a ^ b

-30 ^ 40

11001010

-54

b = dragen<< 1

32<< 1

00101000

64

En zo verder & hellip totdat de lus b = 0 blijkt te zijn voor beknoptheid, niet alle resultaten worden hier getoond. Dus de onderstaande tabel vertegenwoordigt de laatste lus in deze bewerking.

Operatie

Expressie-evaluatie

Binair equivalent

Decimale waarde

naar

-2147483638

11111111111111111111111111111000000000000000000000000000001010

-2147483638

b

-2147483648

11111111111111111111111111111000000000000000000000000000000000

-2147483648

terwijl (b! = 0)

waar

int carry = (a & b)

-2147483638 en -2147483648

11111111111111111111111111111000000000000000000000000000000000

-2147483648

a = a ^ b

-2147483638 ^ -2147483648

00001010

10

b = dragen<< 1

-2147483648<< 1

0

0

retourneer een

10

00001010

10

Dus zo werd de optelling berekend. Opluchting! zo veel voor de gedachte. Stel je voor dat deze berekening handmatig door mensen is gedaan, voornamelijk binaire berekeningen.

Volgende in dit artikel over het toevoegen van twee nummers in Java

Herhaling

We kunnen het bovenstaande programma ook met recursie schrijven. Het rekengedeelte verschilt enigszins. Laten we dit als huiswerk beschouwen, zullen we? Ik geef hier het uittreksel voor de recursie en je probeert je eigen tafel te bouwen zodat je weet hoe het intern werkt. Het is ook niet nodig om dit allemaal te overvallen dat alleen voor representatiedoeleinden is, tenzij je enthousiast bent over de interne werking hier.

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

Dit was allemaal voor het optellen van twee getallen in Java met + operator en zonder + operator. De reden waarom u voor een van beide kiest, hangt volledig af van de projectbehoefte en -vereiste.

Ik heb de werking van beide scenario's niet geëvalueerd en getest om tot prestaties te komen. Ik denk dat dat alleen van kracht zal worden als je de raket bouwt en in de ruimte aflevert.

Ik heb alleen getallen uitgelegd die verband houden met gehele getallen voor beknoptheid die zijn eigen geheugenlimiet hebben. Ik laat het aan jou over om verder te onderzoeken met float, double, etc. Onthoud altijd dat als je de grenswaarde van primitieve typen overschrijdt, het resultaat een ander antwoord zal laten zien.

Bekijk de door Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld. We zijn hier om je te helpen bij elke stap op je reis, om op je best te worden, bedenken we een curriculum dat is ontworpen voor studenten en professionals die een Java-ontwikkelaar willen worden.