Selles artiklis tutvustan teile lihtsat, kuid olulist mõistet, milleks on Java kahe numbri lisamine. Kuid enne edasiliikumist soovitaksin teil tutvuda varasema versiooniga „Mis on Java“, Java funktsioonidega ja kuidas Java oma süsteemi installida. . See aitab teil kiiresti ja lihtsalt haarata tulevasi kontseptsioone. Teised meie kirjutatud selle Java õpetuste sarja ajaveebid eksperdid käsitlevad põhjalikult kõiki Java ja J2EE olulisi teemasid,
Järgmisi näpunäiteid käsitletakse selles artiklis,
- 1. meetod
- 2. meetod
- Korduv Unary Operaator
- Esialgne aasade tabel
- Bitipõhine ja Bitshifti operaator Java-s
- Rekursioon
Alustagem siis
Kahe numbri lisamine Java-s
1. meetod
Mõelgem otse, arendades Java-s programmi, et ekraanile printida „Kahe numbri lisamine”.
Klass AddTwoNumbers {public static void main (String [] args) {System.out.println ('Kahe numbri 10 + 20 lisamine on' + (10 + 20))}}
Väljund
Me peame sellest aru saama, siin lisatakse numbrid otse, öeldes 10 + 20, mis on 30. Aga see, mida me konsoolilt numbreid saame. Sel juhul salvestatakse väärtused muutujasse. Java osas salvestab massiivmuutuja String need numbrid nende indeksi põhjal.
public class Main {public static void main (String [] args) {System.out.println ('Kahe numbri lisamine' + args [0] + '+' + args [1] + 'on' + (args [0 ] + argumendid [1]))}}
Selle väljund on konsoolis näidatud, kui edastame sama numbri, mis on 10 ja 20.
Eh, siin saadud tulemust ei soovita. 30. Pea meeles Stringi [] argumente, iga konsoolilt saadud sisend on stringis esindatud. Nii et siin peame liitmise arvutamiseks need stringid teisendama täisarvuks.
kuidas määrata java klassirada
avalik klass Main {avalik staatiline void main (String [] args) {//System.out.println(' Kahe numbri lisamine '+ args [0] +' + '+ args [1] +' on '+ (args [0] + args [1])) System.out.println ('Kahe numbri lisamine' + args [0] + '+' + args [1] + 'on' + (Integer.parseInt (args [0] ) + Integer.parseInt (args [1])))}}
Väljund
Nüüd on soovitud väljund see, mida me tahame. See tähendab, et 10 ja 20 on 30 pärast seda, kui oleme selle sõelunud täisarvuni.
Järgmine selles artiklis Java kahe numbri lisamise kohta
2. meetod
Kasutades lahutamisoperaatorit: Võime lahutamise abil lisada kaks arvu, nii et see eitab negatiivse väärtuse ja tuleneb liitmisest.
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 (lisa (-10, 20))}}
Ouput
30
10
Järgmine selles artiklis Java kahe numbri lisamise kohta
Korduv Unary Operaator
See hõlmab loopi, selle põhiidee on viia esimese operandi väärtus nulli. Ja jätkata vastava teise operandi suurendamist sama arvu korduste võrra. Mõelge ise allpool toodud näitele.
public class 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--} samas (a<0) { //System.out.println('while a ' + a + ' : ' + b) b-- a++ } //System.out.println('return b--->'+ a +': '+ b) tagastamine b}}
Ouput
$ javac HelloWorld.java $ java -Xmx128M -Xms16M HelloWorld lisage 30 lisa 10
Järgmine selles artiklis Java kahe numbri lisamise kohta
Bitipõhine ja Bitshifti operaator Java-s
Samuti saame kahe täisarvu lisada XOR-i bitipõhise operaatori abil ja kandmise saab operaator AND. Kandesummaks lisamiseks peame kasutama allkirjastatud vasakpoolse vahetuse operaatorit. Kuidas see juhtub? Vaatame kõigepealt näidet.
public class HelloWorld {public static void main (String [] args) {System.out.println ('Lisa kasutades + ve' + addUsingBits (10, 20)) System.out.println ('Lisa -ve abil + LisaUsingBits -10, 20))} public staatiline int addUsingBits (int a, int b) {while (b! = 0) {int carry = (a & b) a = a ^ bb = carry<< 1 } return a } }
Väljund
$ javac HelloWorld.java
$ java -Xmx128M -Xms16M HelloWorld
Lisamine, kasutades + ve 30
Lisamine -ve 10 abil
Pidage alati meeles, et kahe biti lisamise hindamiseks kasutatakse operatsiooni XOR. AND-operatsiooni kasutatakse kahe biti ülekande hindamiseks. Lahkame seda, kas pole? Sisendväärtustest lähtuvalt võtame esimese tingimuse korral a = 10 ja b = 20.
Operatsioon | Väljenduse hindamine | Binaarne ekvivalent | Kümnendväärtus |
kuni | 10 | 00001010 | 10 |
b | kakskümmend | 00010100 | kakskümmend |
samas (b! = 0) | tõsi | ||
int kandma = (a & b) | 10 ja 20 | 0 | 0 |
a = a ^ b | 10 ^ 20 | 00011110 | 30 |
b = kandma<< 1 | 0<< 1 | 0 | 0 |
tagastama a | 30 | 00011110 | 30 |
Võtame nüüd negatiivse sisendi, näiteks a-väärtuseks -10. Uurime, mis juhtub allolevas tabelis.See võimaldab meil jätkata, kuni kande kümnendväärtus on negatiivne.
Järgmine selles artiklis Java kahe numbri lisamise kohta
Esialgne aasade tabel
Operatsioon | Väljenduse hindamine | Binaarne ekvivalent | Kümnendväärtus |
kuni | -10 | 11110110 | -10 |
b | kakskümmend | 00010100 | kakskümmend |
samas (b! = 0) | tõsi | ||
int kandma = (a & b) | -10 ja 20 | 00010100 | kakskümmend |
a = a ^ b | -10 ^ 20 | 11100010 | -30 |
b = kandma<< 1 | kakskümmend<< 1 | 00101000 | 40 |
1. silmus.
Operatsioon | Väljenduse hindamine | Binaarne ekvivalent | Kümnendväärtus |
kuni | -30 | 11100010 | -30 |
b | 40 | 00101000 | 40 |
samas (b! = 0) | tõsi | ||
int kandma = (a & b) | -30 ja 40 | 00100000 | 32 |
a = a ^ b | -30 ^ 40 | 11001010 | -54 |
b = kandma<< 1 | 32<< 1 | 00101000 | 64 |
Ja nii edasi & hellip, kuni silmus osutub lühikeseks b = 0, kõiki tulemusi ei kuvata siin. Nii et tabeli all on selle operatsiooni viimane silmus.
Operatsioon | Väljenduse hindamine | Binaarne ekvivalent | Kümnendväärtus |
kuni | -2147483638 | 11111111111111111111111111111110000000000000000000000000000000001010 | -2147483638 |
b | -2147483648 | 1111111111111111111111111111100100000000000000000000000000000000000 | -2147483648 |
samas (b! = 0) | tõsi | ||
int kandma = (a & b) | -2147483638 ja -2147483648 | 1111111111111111111111111111100100000000000000000000000000000000000 | -2147483648 |
a = a ^ b | -2147483638 ^ -2147483648 | 00001010 | 10 |
b = kandma<< 1 | -2147483648<< 1 | 0 | 0 |
tagastama a | 10 | 00001010 | 10 |
Nii saigi liitumine arvutatud. Phew! nii palju sellest mõttest. Mõelge vaid sellele, kas selle arvutuse tegid inimesed käsitsi, peamiselt binaararvutused.
Järgmine selles artiklis Java kahe numbri lisamise kohta
Rekursioon
Samuti võime ülaltoodud programmi kirjutada ka rekursiooni abil. Arvestusosa erineb veidi, kas võiksime seda kaaluda kodutööde jaoks? Annan siin väljavõtte rekursiooniks ja proovite ise oma lauda ehitada, et teaksite, kuidas see sisemiselt töötab. Samuti pole vaja seda kõike ainult esindamise eesmärgil rüübata, välja arvatud juhul, kui olete siinse töö pärast põnevil.
public staatiline int addUsingRecursion (int a, int b) {if (b == 0) tagastab int summa = a ^ b int carry = (a & b)<< 1 return add(sum, carry) }
See kõik oli kahe Java-numbri lisamiseks, kasutades + operaatorit ja ilma + operaatorit. Kummagi poole pöördumise põhjus sõltub täielikult projekti vajadusest ja nõudest.
Ma pole mõlema stsenaariumi toimimist tulemuslikkuse saavutamiseks hinnanud ja katsetanud. Ma arvan, et see jõustub ainult siis, kui ehitate raketti ja toimetate selle kosmosesse.
Olen lühiduse huvides selgitanud ainult täisarvudega seotud numbreid, millel on oma mälupiirang. Jätan teile edasise uurimise ujuki, topelt jne kasutamise kohta. Pidage meeles, et kui ületate primitiivsete tüüpide piirväärtuse, näitab tulemus erinevat vastust.
Vaadake Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik hõlmab üle 250 000 rahuloleva õppija, levinud üle kogu maailma. Oleme siin, et aidata teil igal sammul oma teekonnal, et teie parimaks saada, pakume välja õppekava, mis on mõeldud õpilastele ja spetsialistidele, kes soovivad olla Java arendajad.
kas sa saad topelt int-le visata