Rumah >Java >javaTutorial >Apakah Yang Dilakukan Operator `^` di Jawa, dan Bagaimanakah Ia Berbeza daripada Eksponen?
Di Java, operator ^ berfungsi sebagai pengendali eksklusif-atau ("xor"). Tidak seperti eksponen, ia beroperasi bitwise pada nilai integer.
Operator xor membandingkan bit yang sepadan bagi dua nombor binari. Untuk setiap bit:
Pertimbangkan operasi XOR bagi 5 (101 dalam binari) dan 6 (110 dalam perduaan):
(decimal) (binary) 5 = 101 6 = 110 ------------------ xor 3 = 011
Corak bit yang terhasil, 011, mewakili nilai perpuluhan 3.
Java tidak mempunyai eksponensial integer pengendali. Untuk melaksanakan eksponen, anda boleh menggunakan Math.pow(double, double) (casting to int jika perlu).
Sebagai alternatif, anda boleh利用bit-shift trick untuk mengira kuasa dua dengan cekap: (1L << ; k) sama dengan dua kuasa k untuk k dalam julat 0 hingga 63.
Dalam kes khusus untuk menukar rentetan digit kepada integer, anda boleh menggunakan skema Horner. Kaedah ini mudah dan berkesan:
8675309 = 8*10^6 + 6*10^5 + 7*10^4 + 5*10^3 + 3*10^2 + 0*10^1 + 9*10^0 = (((((8*10 + 6)*10 + 7)*10 + 5)*10 + 3)*10 + 0)*10 + 9
Mulakan dengan hasil awal 0. Baca digit dari kiri ke kanan dan kumpulkan hasilnya dengan mendarab dengan 10 dan menambah digit semasa pada setiap langkah.
Atas ialah kandungan terperinci Apakah Yang Dilakukan Operator `^` di Jawa, dan Bagaimanakah Ia Berbeza daripada Eksponen?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!