Dalam artikel ini, saya akan memperkenalkan anda kepada konsep sederhana namun penting iaitu penambahan dua nombor di Java. Tetapi sebelum bergerak maju, saya sarankan Anda untuk membiasakan diri dengan 'Apa itu Java', fitur Java dan bagaimana anda dapat memasang Java pada sistem anda, yang dapat anda temukan di sebelumnya . Ini akan membantu anda merealisasikan konsep yang akan datang dengan cepat dan mudah. Blog lain dalam siri tutorial Java ini ditulis oleh kami pakar akan merangkumi semua topik penting Java & J2EE secara mendalam,
overriding vs overloading c ++
Petunjuk berikut akan dibahas dalam artikel ini,
- Kaedah 1
- Kaedah 2
- Pengendali Tidak Berulang
- Jadual Gelung Permulaan
- Pengendali Bitwise Dan Bitshift Di Jawa
- Pengulangan
Oleh itu, mari kita mulakan,
Penambahan dua nombor di Jawa
Kaedah 1
Mari kita fahami secara langsung dengan mengembangkan program di Java untuk mencetak 'Penambahan dua angka' di layar.
Kelas AddTwoNumbers {public static void main (String [] args) {System.out.println ('Penambahan dua nombor 10 + 20 adalah' + (10 + 20))}}
Pengeluaran
Kita mesti memahami bahawa, di sini nombor ditambahkan secara langsung mengatakan 10 + 20 iaitu 30. Tetapi apa yang kita dapat nombor dari konsol. Sekiranya nilai tersebut disimpan dalam pemboleh ubah. Dari segi Java, String array variabel akan menyimpan nombor tersebut berdasarkan indeksnya.
kelas awam Utama {public static void main (String [] args) {System.out.println ('Penambahan dua nombor' + args [0] + '+' + args [1] + 'is' + (args [0 ] + argumen [1]))}}
Keluaran untuk ini akan seperti yang ditunjukkan dalam Konsol apabila kita melewati angka yang sama iaitu 10 dan 20.
Eh, hasil yang kita dapat di sini tidak diinginkan 30. Ingat String [] berpendapat, setiap input yang anda ambil dari konsol ditunjukkan dalam String. Jadi di sini kita harus menukar String tersebut menjadi Integer untuk mengira penambahannya.
kelas awam Utama {public static void main (String [] args) {//System.out.println('Penambahan dua nombor '+ args [0] +' + '+ args [1] +' adalah '+ (args [0] + args [1])) System.out.println ('Penambahan dua nombor' + args [0] + '+' + args [1] + 'adalah' + (Integer.parseInt (args [0] ) + Integer.parseInt (args [1])))}}
Pengeluaran
Sekarang output yang diinginkan adalah yang kita mahukan. Itu adalah penambahan 10 dan 20 adalah 30 setelah kita menguraikannya dari String ke Integer.
Selanjutnya dalam artikel ini mengenai Penambahan Dua Nombor Di Jawa
Kaedah 2
Menggunakan pengendali Penolakan: Kita boleh menggunakan pengurangan untuk menambahkan dua nombor sehingga akan menafikan nilai negatif dan datang sehingga menghasilkan penambahan.
kelas awam AddTwoNumbers {public static int add (int a, int b) {return a - (-b)} public static void main (String [] args) {System.out.println (add (10, 20)) Sistem. out.println (tambah (-10, 20))}}
Ouput
30
10
Selanjutnya dalam artikel ini mengenai Penambahan Dua Nombor Di Jawa
Pengendali Tidak Berulang
Ini melibatkan while loop, idea asas di sebalik ini adalah menjadikan nilai operan pertama menjadi sifar. Dan untuk terus meningkatkan operan kedua yang sepadan dengan jumlah lelaran yang sama. Pertimbangkan sendiri contoh di bawah ini.
kelas awam HelloWorld {public static void main (String [] args) {System.out.println ('add' + add (10, 20)) System.out.println ('add' + add (-10, 20)) } int statik awam tambah (int a, int b) {//System.out.println ('--->' + a + ':' + b) sementara (a> 0) {//System.out.println ('while a> 0 --->' + a + ':' + b) b ++ a--} sementara (a<0) { //System.out.println('while a ' + a + ' : ' + b) b-- a++ } //System.out.println('return b--->'+ a +': '+ b) kembali b}}
Ouput
$ javac HelloWorld.java $ java -Xmx128M -Xms16M HelloWorld tambah 30 tambah 10
Selanjutnya dalam artikel ini mengenai Penambahan Dua Nombor Di Jawa
Pengendali Bitwise Dan Bitshift Di Jawa
Kita juga boleh melakukan penambahan dua bilangan bulat dengan menggunakan operator bitwise XOR dan pembawa boleh diperolehi oleh operator AND. Untuk menambah jumlah tambah, kita perlu menggunakan operator shift kiri yang ditandatangani. Bagaimana ini berlaku? Mari kita lihat contohnya.
kelas awam 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))} int addUsingBits statik awam (int a, int b) {while (b! = 0) {int carry = (a & b) a = a ^ bb = carry<< 1 } return a } }
Pengeluaran
$ javac HelloWorld.java
$ java -Xmx128M -Xms16M HelloWorld
Penambahan menggunakan + ve 30
Penambahan menggunakan -ve 10
Sentiasa ingat bahawa, operasi XOR digunakan untuk menilai penambahan dua bit. DAN operasi digunakan untuk menilai pembawaan dua bit. Mari kita membedah ini? Mengikut nilai input mari kita ambil a = 10 dan b = 20 untuk keadaan pertama.
Operasi | Penilaian ekspresi | Setaraf binari | Nilai Perpuluhan |
ke | 10 | 00001010 | 10 |
b | dua puluh | 00010100 | dua puluh |
sementara (b! = 0) | benar | ||
int membawa = (a & b) | 10 & 20 | 0 | 0 |
a = a ^ b | 10 ^ 20 | 00011110 | 30 |
b = membawa<< 1 | 0<< 1 | 0 | 0 |
mengembalikan a | 30 | 00011110 | 30 |
Sekarang, mari kita katakan input negatif -10 untuk a. Mari kita kaji apa yang berlaku di jadual di bawah.Ini membolehkan kita terus berubah sehingga nilai perpuluhan dibawa menjadi negatif.
Selanjutnya dalam artikel ini mengenai Penambahan Dua Nombor Di Jawa
Jadual Gelung Permulaan
Operasi | Penilaian ekspresi | Setaraf binari | Nilai Perpuluhan |
ke | -10 | 11110110 | -10 |
b | dua puluh | 00010100 | dua puluh |
sementara (b! = 0) | benar | ||
int membawa = (a & b) | -10 & 20 | 00010100 | dua puluh |
a = a ^ b | -10 ^ 20 | 11100010 | -30 |
b = membawa<< 1 | dua puluh<< 1 | 00101000 | 40 |
Gelung 1.
Operasi | Penilaian ekspresi | Setaraf binari | Nilai Perpuluhan |
ke | -30 | 11100010 | -30 |
b | 40 | 00101000 | 40 |
sementara (b! = 0) | benar | ||
int membawa = (a & b) | -30 & 40 | 00100000 | 32 |
a = a ^ b | -30 ^ 40 | 11001010 | -54 |
b = membawa<< 1 | 32<< 1 | 00101000 | 64 |
Dan seterusnya & hellip sehingga loop berubah menjadi b = 0 untuk singkatnya tidak semua hasil ditunjukkan di sini. Jadi jadual di bawah menunjukkan gelung terakhir dalam operasi ini.
Operasi | Penilaian ekspresi | Setaraf binari | Nilai Perpuluhan |
ke | -2147483638 | 111111111111111111111111111110000000000000000000000000001010 | -2147483638 |
b | -2147483648 apa itu boneka dan tukang masak | 111111111111111111111111111110000000000000000000000000000000 | -2147483648 |
sementara (b! = 0) | benar | ||
int membawa = (a & b) | -2147483638 & -2147483648 | 111111111111111111111111111110000000000000000000000000000000 | -2147483648 |
a = a ^ b | -2147483638 ^ -2147483648 | 00001010 | 10 |
b = membawa<< 1 | -2147483648<< 1 | 0 | 0 |
mengembalikan a | 10 | 00001010 | 10 |
Oleh itu, penambahan itu dikira. Phew! begitu banyak untuk pemikiran. Cuba fikirkan jika pengiraan ini dilakukan secara manual oleh manusia, terutamanya pengiraan binari.
Selanjutnya dalam artikel ini mengenai Penambahan Dua Nombor Di Jawa
Pengulangan
Kita juga boleh menulis program di atas menggunakan rekursi. Bahagian pengiraan berbeza sedikit mari kita mempertimbangkan ini untuk kerja rumah untuk anda kan? Saya akan memberikan ekstrak di sini untuk tujuan dan anda cuba membina jadual anda sendiri supaya anda tahu bagaimana ia berfungsi secara dalaman. Juga, tidak perlu mencungkil semua ini hanya untuk tujuan perwakilan melainkan anda teruja dengan kerja dalaman di sini.
public static int addUsingRecursion (int a, int b) {if (b == 0) mengembalikan int sum = a ^ b int carry = (a & b)<< 1 return add(sum, carry) }
Ini semua untuk penambahan dua nombor di Java dengan menggunakan + operator dan tanpa menggunakan + operator. Sebab untuk memilih salah satu dari mereka bergantung sepenuhnya kepada keperluan dan kehendak projek.
Saya belum menilai dan menguji bagaimana kedua-dua senario tersebut dapat menghasilkan prestasi. Saya rasa ia akan berlaku hanya jika anda membina roket dan menghantarnya ke angkasa.
Saya telah menerangkan hanya nombor yang berkaitan dengan bilangan bulat untuk bilangan pendek yang mempunyai had ingatannya sendiri. Saya menyerahkan kepada anda untuk meneroka lebih jauh dengan menggunakan float, double, dll. Sentiasa ingat bahawa jika anda melebihi nilai had jenis primitif maka hasilnya akan menunjukkan jawapan yang berbeza.
Lihat oleh Edureka, sebuah syarikat pembelajaran dalam talian yang dipercayai dengan rangkaian lebih daripada 250,000 pelajar berpuas hati yang tersebar di seluruh dunia. Kami sedia membantu anda dalam setiap langkah dalam perjalanan anda, untuk menjadi yang terbaik, kami menyediakan kurikulum yang dirancang untuk pelajar dan profesional yang ingin menjadi Pembangun Java.