Ada operator yang disebut operator bit eksklusif atau di Java, yang diwakili oleh simbol (^). Aturan operasi adalah: Di antara bit dari dua operan, hasilnya adalah 0 jika hasilnya 1 jika bit dari dua operan sama, dan hasilnya 1 jika hasilnya berbeda. Mari kita lihat contoh di bawah ini:
kelas publik testxor {public static void main (string [] args) {int i = 15, j = 2; System.out.println ("i ^ j =" + (i ^ j));}}Hasil operasi adalah: i^j = 13.
Menganalisis program di atas, mengubah I = 15 menjadi biner adalah 1111, mengubah J = 2 menjadi biner adalah 0010, dan memperoleh 1101 sesuai dengan aturan operasi XOR, dan mengubahnya menjadi desimal adalah 13.
Dengan menggunakan aturan ini, kami dapat secara fleksibel menerapkan algoritma tertentu. Misalnya, jika ada angka 2k+1, dan 2k dari mereka adalah sama, Anda perlu menemukan angka yang berbeda, seperti: 2, 3, 4, 4, 3, 5, 6, 6, 5. Kita dapat menggunakan operator XOR untuk menulis dengan cara ini:
kelas publik testxor {public static void main (string [] args) {int [] array = {2,3,4,4,3,5,6,5}; int v = 0; for (int i = 0; i <array.length; i ++) {v ^array [i];} System.out.oUn.printl; i ++) {v ^array [i];} System.out.out.printl; i ++)Hasilnya adalah: Angka yang hanya muncul sekali adalah 2.
Kami hanya menggunakan aturan operator XOR untuk mendapatkan prinsip bahwa angka dan 0 adalah xor atau diri sendiri, dan angka dan diri sendiri adalah xor atau diri sendiri.
Metode perhitungan di atas: V = 2^3^4^4^3^5^6^6^5;
Menurut hukum pertukaran dan aturan di atas
Jumlah yang hanya muncul sekali dapat menjadi output (2k dari prasyarat yang sama harus dipenuhi)
Meringkaskan
Di atas adalah semua konten artikel ini tentang analisis kode masalah XOR di Java, saya harap ini akan membantu semua orang. Teman yang tertarik dapat terus merujuk ke topik terkait lainnya di situs ini. Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini!