I denne artikkelen skal jeg introdusere deg for et enkelt, men viktig konsept som er tillegg av to tall i Java. Men før du går videre, vil jeg foreslå at du blir kjent med 'Hva er Java', funksjoner i Java og hvordan kan du installere Java på systemet ditt, som du kan finne i tidligere . Dette vil hjelpe deg med å ta tak i de kommende konseptene raskt og enkelt. De andre bloggene i denne Java-opplæringsserien skrevet av vår eksperter vil dekke alle viktige temaer i Java og J2EE i dybden,
Følgende tips vil bli dekket i denne artikkelen,
- Metode 1
- Metode 2
- Gjentatt unary operatør
- Innledende sløyfetabell
- Bitvis og Bitshift-operatør i Java
- Rekursjon
Så la oss komme i gang da,
Tillegg av to tall i Java
Metode 1
La oss forstå det direkte ved å utvikle et program i Java for å skrive ut 'Addition of two numbers' på skjermen.
Class AddTwoNumbers {public static void main (String [] args) {System.out.println (“Addition of two numbers 10 + 20 is” + (10 + 20))}}
Produksjon
Vi må forstå dette at her legges tall direkte til, sier 10 + 20 som er 30. Men hva vi får tall fra konsollen. I så fall lagres verdiene i en variabel. Når det gjelder Java, vil String-arrayvariabelen lagre disse tallene basert på indeksen.
public class Main {public static void main (String [] args) {System.out.println ('Addition of two numbers' + args [0] + '+' + args [1] + 'er' + (args [0 ] + args [1]))}}
Utgangen for dette vil være som vist i konsollen når vi passerer samme nummer som er 10 og 20.
kokk vs dukke vs ansible
Resultatet vi fikk her er ikke ønsket 30. Husk at String [] argumenterer, hver inngang du tar fra konsollen er representert i String. Så her må vi konvertere strengene til heltall for å beregne tillegget.
public class Main {public static void main (String [] args) {//System.out.println('Tilsetning av to tall '+ args [0] +' + '+ args [1] +' er '+ (args [0] + args [1])) System.out.println ('Tillegg av to tall' + args [0] + '+' + args [1] + 'er' + (Integer.parseInt (args [0] ) + Integer.parseInt (args [1])))}}
Produksjon
Nå er ønsket utgang det vi ønsker. Det er tillegget av 10 og 20 er 30 etter at vi har analysert det fra String til Integer.
Neste i denne artikkelen om Addition Of Two Numbers In Java
Metode 2
Bruker subtraksjonsoperatør: Vi kan bruke subtraksjon til å legge til to tall slik at det vil negere den negative verdien og komme og resultere i tillegg.
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 (legg til (-10, 20))}}
Ouput
30
10
Neste i denne artikkelen om Addition Of Two Numbers In Java
Gjentatt unary operatør
Dette innebærer mens loop, den grunnleggende ideen bak dette er å bringe verdien av første operand til null. Og for å fortsette å øke den tilsvarende andre operanden med samme mengde gjentakelser. Tenk på eksemplet nedenfor selv.
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 legge til (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 legg til 30 legg til 10
Neste i denne artikkelen om Addition Of Two Numbers In Java
Bitvis og Bitshift-operatør i Java
Vi kan også gjøre tillegg av to heltall ved å bruke XOR bitvis operator og bære kan fås av AND operator. For å legge til sum må vi bruke signert venstreskiftoperatør. Hvordan skjer dette? La oss 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 } }
Produksjon
$ javac HelloWorld.java
$ java -Xmx128M -Xms16M HelloWorld
Tillegg ved hjelp av + ve 30
Tilsetning ved hjelp av -ve 10
Husk alltid at XOR-operasjon brukes til å evaluere tillegg av to biter. OG-operasjon brukes til å evaluere bære av to biter. La oss dissekere dette, skal vi? Går vi etter inngangsverdiene, la oss ta a = 10 og b = 20 for første tilstand.
Operasjon | Uttrykk evaluering | Binær ekvivalent | Desimalverdi |
til | 10 | 00001010 | 10 |
b | tjue | 00010100 | tjue |
mens (b! = 0) | ekte | ||
int carry = (a & b) | 10 og 20 | 0 | 0 |
a = a ^ b | 10 ^ 20 | 00011110 | 30 |
b = bære<< 1 | 0<< 1 | 0 | 0 |
returner a | 30 | 00011110 | 30 |
La oss ta et negativt innspill si -10 for a. La oss undersøke hva som skjer i tabellen nedenfor.Dette lar oss løkke til desimalverdien av bære blir negativ.
Neste i denne artikkelen om Addition Of Two Numbers In Java
Innledende sløyfetabell
Operasjon | Uttrykk evaluering | Binær ekvivalent | Desimalverdi |
til | -10 | 11110110 | -10 |
b | tjue | 00010100 | tjue |
mens (b! = 0) | ekte | ||
int carry = (a & b) | -10 og 20 | 00010100 | tjue |
a = a ^ b | -10 ^ 20 | 11100010 | -30 |
b = bære<< 1 | tjue<< 1 | 00101000 | 40 |
Sløyfe 1.
Operasjon | Uttrykk evaluering | Binær ekvivalent | Desimalverdi |
til | -30 | 11100010 | -30 |
b | 40 | 00101000 | 40 |
mens (b! = 0) | ekte | ||
int carry = (a & b) | -30 og 40 | 00100000 | 32 |
a = a ^ b | -30 ^ 40 | 11001010 | -54 |
b = bære<< 1 | 32<< 1 | 00101000 | 64 |
Og så videre og hellip til loop viser seg å være b = 0 for kortfattethet, ikke alt resultatet vises her. Så under tabellen representerer siste sløyfe i denne operasjonen.
Operasjon | Uttrykk evaluering | Binær ekvivalent | Desimalverdi |
til | -2147483638 | 11111111111111111111111111100000000000000000000000000000001010 | -2147483638 |
b hvordan du bruker tostring-metoden | -2147483648 | 1111111111111111111111111111100000000000000000000000000000000000 | -2147483648 |
mens (b! = 0) | ekte | ||
int carry = (a & b) | -2147483638 & -2147483648 | 1111111111111111111111111111100000000000000000000000000000000000 | -2147483648 |
a = a ^ b | -2147483638 ^ -2147483648 | 00001010 | 10 |
b = bære<< 1 | -2147483648<< 1 | 0 | 0 |
returner a | 10 | 00001010 | 10 |
Så slik ble tillegget beregnet. Puh! så mye for tanken. Tenk bare hvis denne beregningen ble gjort manuelt av mennesker, hovedsakelig binære beregninger.
Neste i denne artikkelen om Addition Of Two Numbers In Java
Rekursjon
Vi kan også skrive programmet ovenfor ved hjelp av rekursjon. Beregningsdelen skiller seg litt ut, kan vi vurdere dette for lekser for deg, skal vi? Jeg vil gi utdraget her for rekursjonen, og du prøver å lage ditt eget bord slik at du vet hvordan det fungerer internt. Du trenger heller ikke krus med alt dette som bare er for representasjonsformål, med mindre du er begeistret for interne arbeid her.
offentlig statisk int addUsingRecursion (int a, int b) {if (b == 0) returnerer en int sum = a ^ b int carry = (a & b)<< 1 return add(sum, carry) }
Dette var alt for tillegg av to tall i Java med bruk av + operator og uten bruk av + operator. Årsaken bak å gå for en av disse vil helt avhenge av prosjektets behov og krav.
Jeg har ikke evaluert og testet hvordan begge scenariene fungerer for å komme med ytelse. Jeg antar at det bare vil tre i kraft hvis du bygger raketten og leverer den til verdensrommet.
Jeg har bare forklart tall relatert til helheter for kortfattethet som har sin egen minnegrense. Jeg overlater til deg å utforske videre ved å bruke float, double osv. Husk alltid at hvis du overskrider grenseverdien for primitive typer, vil resultatet vise et annet svar.
Sjekk ut av Edureka, et pålitelig online læringsfirma med et nettverk av mer enn 250 000 fornøyde elever spredt over hele verden. Vi er her for å hjelpe deg med hvert trinn på reisen, for å bli ditt beste, kommer vi med en læreplan som er designet for studenter og fagpersoner som ønsker å være Java-utvikler.