Kaip įgyvendinti dviejų skaičių papildymą „Java“?



Šiame straipsnyje supažindinsiu su paprasta, tačiau svarbia sąvoka, kuri yra dviejų skaičių papildymas „Java“ su demonstracija.

Šiame straipsnyje aš supažindinsiu jus su paprasta, bet svarbia koncepcija, kuri yra dviejų skaičių pridėjimas „Java“. Tačiau prieš eidamas į priekį, aš jums siūlyčiau susipažinti su „Kas yra Java“, „Java“ funkcijomis ir kaip galite įdiegti „Java“ savo sistemoje, kurią galite rasti ankstesnėse versijose. . Tai padės greitai ir lengvai perimti ateinančias idėjas. Kiti šios „Java“ mokymo programos tinklaraščiai, parašyti mūsų ekspertai nuodugniai išnagrinės visas svarbias „Java“ ir „J2EE“ temas,

Tolimesni patarimai bus aptarti šiame straipsnyje,



Taigi pradėkime tada,

Dviejų skaičių pridėjimas „Java“

1 metodas

Supraskime tiesiogiai, sukurdami „Java“ programą, kad ekrane atspausdintume „Dviejų skaičių pridėjimą“.



Class AddTwoNumbers {public static void main (String [] args) {System.out.println („Dviejų skaičių 10 + 20 pridėjimas yra“ + (10 + 20))}}

Rezultatas

duomenų abstrakcija c ++

Išvestis - pridėkite du „Java“ skaičius - „Edureka“

Turime tai suprasti, kad čia pridedami skaičiai, tiesiai sakant, 10 + 20, tai yra 30. Bet ką mes gauname iš konsolės. Tokiu atveju vertės bus saugomos kintamajame. Kalbant apie „Java“, „String“ masyvo kintamasis išsaugos tuos skaičius pagal jų indeksą.



public class Pagrindinis {public static void main (String [] args) {System.out.println ('Dviejų skaičių pridėjimas + args [0] +' + '+ args [1] +' yra '+ (args [0 ] + argumentai [1]))}}

Tai bus tokia, kokia parodyta „Console“, kai praleisime tą patį skaičių, kuris yra 10 ir 20.

Ech, rezultatas, kurio čia gavome, nėra pageidaujamas. 30. Prisiminkite „String“ [] argumentus, kiekvienas įvestis iš konsolės yra pateiktas eilutėje. Taigi, norėdami apskaičiuoti priedą, turime šias eilutes paversti sveikaisiais skaičiais.

public class Main {public static void main (String [] args) {//System.out.println('Du skaičių papildymas '+ args [0] +' + '+ args [1] +' yra '+ (args [0] + args [1])) System.out.println ('Dviejų skaičių pridėjimas' + args [0] + '+' + args [1] + 'yra' + (Integer.parseInt (args [0] ) + Sveikasis skaičius.parseInt (argumentai [1])))}}

Rezultatas

Dabar norimas rezultatas yra tai, ko mes norime. Tai yra 10 ir 20 pridėjimas yra 30 po to, kai mes juos išanalizavome nuo eilutės iki sveiko skaičiaus.

Kitas šiame straipsnyje apie dviejų skaičių pridėjimą „Java“

2 metodas

  1. Naudojant atimties operatorių: Mes galime naudoti atimtis, kad pridėtume du skaičius taip, kad jis paneigtų neigiamą vertę ir gautųsi taip.

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 (pridėti (-10, 20))}}

Ouputas

30

10

Kitas šiame straipsnyje apie dviejų skaičių pridėjimą „Java“

Pakartotinis „Unary“ operatorius

Tai apima „loop“, pagrindinė idėja yra nulio pirmojo operando vertė. Ir toliau didinti atitinkamą antrąjį operandą tuo pačiu pakartojimų kiekiu. Apsvarstykite žemiau pateiktą pavyzdį patys.

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 ('o a> 0 --->' + a + ':' + b) b ++ a--}, kol (a<0) { //System.out.println('while a ' + a + ' : ' + b) b-- a++ } //System.out.println('return b--->„+ a +“: „+ b) grįžti b}}

Ouputas

$ javac HelloWorld.java $ java -Xmx128M -Xms16M HelloWorld pridėti 30 pridėti 10

Kitas šiame straipsnyje apie dviejų skaičių pridėjimą „Java“

„Bitwise“ ir „Bitshift“ operatorius „Java“

Mes taip pat galime pridėti du sveikus skaičius naudodami XOR operatorių bitais, o nešimą gali gauti operatorius AND. Norėdami pridėti sumą, turėtume naudoti pasirašytą kairės pamainos operatorių. Kaip tai vyksta? Pirmiausia pažiūrėkime pavyzdį.

public class HelloWorld {public static void main (String [] args) {System.out.println ('Papildymas naudojant + ve' + addUsingBits (10, 20)) System.out.println ('Papildymas naudojant -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 } }

Rezultatas

$ javac HelloWorld.java

$ java -Xmx128M -Xms16M HelloWorld

Priedas naudojant + ve 30

Papildymas naudojant -ve 10

Visada atminkite, kad XOR operacija naudojama dviejų bitų pridėjimui įvertinti. AND operacija naudojama dviejų bitų nešimui įvertinti. Išskleiskime tai, ar ne? Eidami pagal įvesties reikšmes, imkime a = 10 ir b = 20 pirmajai sąlygai.

Operacija

Išraiškos vertinimas

Dvejetainis atitikmuo

Dešimtainė vertė

į

10

00001010

10

b

dvidešimt

00010100

dvidešimt

o (b! = 0)

tiesa

int nešioti = (a & b)

10 ir 20

0

0

a = a ^ b

10 ^ 20

00011110

30

b = nešiotis<< 1

0<< 1

0

0

grąžinti a

30

00011110

30

Dabar paimkime neigiamą įvestį, tarkime -10. Panagrinėkime, kas vyksta žemiau esančioje lentelėje.Tai leidžia mums judėti, kol dešimtainė perkėlimo vertė tampa neigiama.

Kitas šiame straipsnyje apie dviejų skaičių pridėjimą „Java“

Pradinė kilpų lentelė

Operacija

Išraiškos vertinimas

Dvejetainis atitikmuo

Dešimtainė vertė

į

-10

11110110

-10

b

dvidešimt

00010100

dvidešimt

o (b! = 0)

tiesa

int nešioti = (a & b)

-10 ir 20

00010100

dvidešimt

a = a ^ b

-10 ^ 20

html ir xml skirtumai

11100010

-30

b = nešiotis<< 1

dvidešimt<< 1

00101000

40

1 kilpa.

Operacija

Išraiškos vertinimas

Dvejetainis atitikmuo

Dešimtainė vertė

į

-30

11100010

-30

b

40

00101000

40

o (b! = 0)

tiesa

int nešioti = (a & b)

-30 ir 40

00100000

32

a = a ^ b

-30 ^ 40

11001010

-54

b = nešiotis<< 1

32<< 1

00101000

64

Ir taip toliau & hellip, kol trumpumas paaiškės, kad b = 0, ne visi rezultatai čia rodomi. Taigi lentelėje pateikiama paskutinė šios operacijos kilpa.

Operacija

Išraiškos vertinimas

Dvejetainis atitikmuo

Dešimtainė vertė

į

-2147483638

1111111111111111111111111111111110000000000000000000000000000000001010

-2147483638

b

-2147483648

1111111111111111111111111111111110000000000000000000000000000000000000

-2147483648

o (b! = 0)

tiesa

int nešioti = (a & b)

-2147483638 ir -2147483648

1111111111111111111111111111111110000000000000000000000000000000000000

-2147483648

a = a ^ b

-2147483638 ^ -2147483648

00001010

10

b = nešiotis<< 1

-2147483648<< 1

0

0

grąžinti a

10

00001010

10

Taigi taip apskaičiuotas priedas. Phew! tiek apie mintį. Tik pagalvokite, ar šį skaičiavimą žmonės atliko rankiniu būdu, daugiausia dvejetainiais skaičiavimais.

Kitas šiame straipsnyje apie dviejų skaičių pridėjimą „Java“

Rekursija

Mes taip pat galime parašyti aukščiau pateiktą programą naudodami rekursiją. Skaičiavimo dalis šiek tiek skiriasi, todėl galime tai apsvarstyti atlikdami namų darbus, ar ne? Aš čia pateiksiu išrašą rekursijai, o jūs pabandykite sukurti savo stalą, kad žinotumėte, kaip jis veikia viduje. Be to, nereikia viso to puoselėti tik reprezentacijos tikslais, nebent jus jaudina čia esantis vidinis darbas.

public static int addUsingRecursion (int a, int b) {if (b == 0) grąžinti int sum = a ^ b int carry = (a & b)<< 1 return add(sum, carry) }

Visa tai buvo skirta pridėti du „Java“ numerius naudojant + operatorių ir nenaudojant + operatoriaus. Bet kurio iš šių priežasčių priežastis priklausys nuo projekto poreikio ir reikalavimo.

Aš nevertinau ir netestavau abiejų scenarijų veikimo, kad galėčiau sugalvoti našumą. Spėju, kad tai įsigalios tik tuo atveju, jei statysite raketą ir pristatysite ją į kosmosą.

Aš paaiškinau tik tuos skaičius, kurie susiję su sveikaisiais skaičiais ir kurie turi savo atminties ribą. Aš palieku jums toliau tyrinėti naudojant plūduriuojančius, dvigubus ir tt Visada atminkite, kad jei viršysite pirmykščių tipų ribinę vertę, rezultatas parodys skirtingą atsakymą.

Patikrinkite sukūrė „Edureka“ - patikima internetinė mokymosi įmonė, turinti daugiau nei 250 000 patenkintų besimokančiųjų tinklą. Mes norime jums padėti kiekviename žingsnyje, kad taptumėte geriausiu, mes parengėme mokymo programą, skirtą studentams ir specialistams, norintiems būti „Java“ kūrėjais.