Ebben a cikkben egy egyszerű, mégis fontos fogalmat ismertetek meg, amely két szám hozzáadása a Java-ban. De mielőtt továbblépnék, azt javaslom, hogy ismerkedjen meg a „Mi az a Java” -val, a Java szolgáltatásaival és hogyan telepítheti a Java-t a rendszerére, amelyet az előzőekben is megtalálhat. . Ez segít gyorsan és egyszerűen megragadni a következő fogalmakat. A többi blog ebben a Java oktatósorozatban, amelyet mi írtunk a szakértők a Java és J2EE összes fontos témáját alaposan megvizsgálják,
A következő hivatkozásokkal foglalkozunk ebben a cikkben,
- 1. módszer
- 2. módszer
- Ismételt Unary Operator
- Kezdeti hurok táblázat
- Bitenként és Bitshift operátor Java-ban
- Rekurzió
Tehát kezdjük el akkor,
Két szám hozzáadása Java-ban
1. módszer
Értsük meg közvetlenül egy Java program fejlesztésével, amely a képernyőn kinyomtatja a „Két szám hozzáadása” kifejezést.
Osztály AddTwoNumbers {public static void main (String [] args) {System.out.println ('Két 10 + 20 szám összeadása' + (10 + 20))}}
Kimenet
Meg kell értenünk ezt, hogy itt a számok közvetlenül hozzáadódnak, mondjuk 10 + 20, azaz 30. De amit a konzolból kapunk. Ebben az esetben az értékeket egy változó tárolja. Java szempontjából a String tömb változó tárolja ezeket a számokat az indexük alapján.
public class Main {public static void main (String [] args) {System.out.println ('Két szám összeadása' + args [0] + '+' + args [1] + 'is' + (args [0 ] + érvek [1]))}}
Ennek kimenete a konzolon látható lesz, amikor átadjuk ugyanazt a számot, amely 10 és 20.
Eh, az itt kapott eredmény nem kívánatos. 30. Emlékezz a String [] argumentumokra, minden konzolról bevitt adat a Stringben jelenik meg. Tehát itt meg kell alakítanunk ezeket a húrokat egész számba az összeadás kiszámításához.
public class Main {public static void main (String [] args) {//System.out.println('Két szám hozzáadása '+ args [0] +' + '+ args [1] +' is '+ (args [0] + args [1])) System.out.println ('Két szám összeadása' + args [0] + '+' + args [1] + 'is' + (Integer.parseInt (args [0] ) + Integer.parseInt (args [1])))}}
Kimenet
Most a kívánt kimenetet akarjuk. Ez azt jelenti, hogy 10 és 20 összeadása 30, miután elemeztük a karakterláncról az egész számra.
Ez a cikk következik a Java két számának hozzáadásáról
2. módszer
Kivonás operátor használata: Kivonással használhatunk két számot úgy, hogy az negatív értéket tagadjon, és így összeadódáshoz jusson.
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.
Ez a cikk következik a Java két számának hozzáadásáról
Ismételt Unary Operator
Ez magában foglalja a while ciklust, ennek alapgondolata az, hogy az első operandus értékét nullára hozza. És folyamatosan növelni a megfelelő második operandusát ugyanannyi iterációval. Vegye figyelembe maga az alábbi példát.
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 ('míg a> 0 --->' + a + ':' + b) b ++ a--} míg (a<0) { //System.out.println('while a ' + a + ' : ' + b) b-- a++ } //System.out.println('return b--->'+ a +': '+ b) return b}}
Ouput
$ javac HelloWorld.java $ java -Xmx128M -Xms16M HelloWorld add 30 add 10
Ez a cikk következik a Java két számának hozzáadásáról
Bitenként és Bitshift operátor Java-ban
Két egész szám hozzáadását is megtehetjük az XOR bitenkénti operátor használatával, és a hordozást az AND operátor kapja meg. Ahhoz, hogy összeadjuk az összeget, aláírt bal váltás operátort kell használnunk. Hogyan történik ez? Lássunk először egy példát.
public class HelloWorld {public static void main (String [] args) {System.out.println ('Hozzáadás a + ve használatával + addUsingBits (10, 20)) System.out.println (' Hozzáadás -ve használatával + 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 } }
Kimenet
$ javac HelloWorld.java
$ java -Xmx128M -Xms16M HelloWorld
Összeadás a + ve 30 gombbal
Összeadás a -ve 10 használatával
Mindig emlékezzen arra, hogy az XOR műveletet két bit hozzáadásának kiértékelésére használják. Az AND műveletet két bit átvitelének értékelésére használják. Bontsuk fel ezt? A bemeneti értékek mentén vegyük az a = 10 és b = 20 értékeket az első feltételhez.
Művelet | Kifejezés kiértékelése | Bináris egyenérték | Tizedesérték |
nak nek | 10. amit a java sorosít | 00001010 | 10. |
b | húsz | 00010100 | húsz |
míg (b! = 0) | igaz | ||
int carry = (a & b) | 10 és 20 | 0 | 0 |
a = a ^ b | 10 ^ 20 | 00011110 | 30 |
b = hordoz<< 1 | 0<< 1 | 0 | 0 |
vissza a | 30 | 00011110 | 30 |
Vegyünk egy negatív bemenetet, mondjuk a -10-et. Vizsgáljuk meg, mi történik az alábbi táblázatban.Ez lehetővé teszi számunkra a hurkot, amíg a tizedesértéke negatív lesz.
Ez a cikk következik a Java két számának hozzáadásáról
Kezdeti hurok táblázat
Művelet | Kifejezés kiértékelése | Bináris egyenérték | Tizedesérték |
nak nek | -10 | 11110110 | -10 |
b | húsz | 00010100 | húsz |
míg (b! = 0) | igaz | ||
int carry = (a & b) | -10 és 20 | 00010100 | húsz |
a = a ^ b | -10 ^ 20 | 11100010 | -30 |
b = hordoz<< 1 android tevékenység életciklusa | húsz<< 1 | 00101000 | 40 |
1. hurok.
Művelet | Kifejezés kiértékelése | Bináris egyenérték | Tizedesérték |
nak nek | -30 | 11100010 | -30 |
b | 40 | 00101000 | 40 |
míg (b! = 0) | igaz | ||
int carry = (a & b) | -30 és 40 | 00100000 | 32 |
a = a ^ b | -30 ^ 40 | 11001010 | -54 |
b = hordoz<< 1 | 32<< 1 | 00101000 | 64. |
És így tovább & hellip, amíg a hurok rövidsége miatt b = 0 lesz, nem minden eredmény jelenik meg itt. Tehát az alábbi táblázat a művelet utolsó ciklusát jelenti.
Művelet | Kifejezés kiértékelése | Bináris egyenérték | Tizedesérték |
nak nek | -2147483638 | 111111111111111111111111111111111000000000000000000000000000000101010 | -2147483638 |
b | -2147483648 | 1111111111111111111111111111111110000000000000000000000000000000000000 | -2147483648 |
míg (b! = 0) | igaz | ||
int carry = (a & b) | -2147483638 és -2147483648 | 1111111111111111111111111111111110000000000000000000000000000000000000 | -2147483648 |
a = a ^ b | -2147483638 ^ -2147483648 | 00001010 | 10. |
b = hordoz<< 1 | -2147483648<< 1 | 0 | 0 |
vissza a | 10. | 00001010 | 10. |
Tehát így számolták ki az összeadást. Phew! ennyit a gondolatról. Gondoljunk csak arra, ha ezt a számítást emberek végeznék manuálisan, főleg bináris számításokkal.
Ez a cikk következik a Java két számának hozzáadásáról
Rekurzió
A fenti programot rekurzióval is megírhatjuk. A számítási rész kissé eltér, és ezt figyelembe vehetjük a házi feladatoknál? A rekurzióhoz itt adom meg a kivonatot, és megpróbálja felépíteni a saját asztalát, hogy tudja, hogyan működik belsőleg. Ezenkívül nincs szükség mindezekre, amelyek csak reprezentációs célokat szolgálnak, hacsak nem izgatott az itteni belső működés.
public static int addUsingRecursion (int a, int b) {if (b == 0) visszatér egy int összeg = a ^ b int carry = (a & b)<< 1 return add(sum, carry) }
Ez mind két Java szám hozzáadásához szólt a + operátor használatával és a + operátor használata nélkül. Az egyik vagy másik fél elmulasztásának oka teljesen a projekt szükségletétől és követelményétől függ.
Nem értékeltem és nem teszteltem mindkét forgatókönyv működését a teljesítmény elérése érdekében. Gondolom, ez csak akkor lép életbe, ha építi a rakétát és szállítja az űrbe.
Csak az egész számokkal kapcsolatos számokat magyaráztam rövidség céljából, amelyeknek saját memóriakorlátjuk van. Rátok bízza, hogy tovább vizsgálja az úszó, dupla stb. Használatát. Mindig emlékezzen arra, hogy ha túllépi a primitív típusok határértékét, akkor az eredmény más választ mutat.
Nézze meg a az Edureka, egy megbízható online tanulási vállalat, amelynek több mint 250 000 elégedett tanulóval rendelkező hálózata elterjedt az egész világon. Azért vagyunk itt, hogy segítséget nyújtsunk utazásának minden lépésében, hogy a legjobbak legyünk, kidolgozunk egy tananyagot, amelyet olyan hallgatók és szakemberek számára tervezünk, akik Java fejlesztők szeretnének lenni.