Operasi Aritmetik bagi Jenis Data Char Java
Apabila bekerja dengan data char dalam Java, adalah penting untuk memahami gelagat operasi aritmetik. Pertimbangkan ungkapan berikut:
'a' + 'b'
Bertentangan dengan apa yang mungkin diandaikan pada mulanya, hasil penambahan ini bukanlah aksara, tetapi int. Ini disebabkan oleh peraturan promosi angka binari Java, yang menyatakan bahawa apabila dua aksara ditambah bersama, kedua-duanya ditukar kepada int sebelum operasi dijalankan.
Promosi ini berlaku kerana Java tidak mempunyai arahan aritmetik khusus untuk data yang lebih kecil. jenis seperti aksara dan bait. Untuk mensimulasikan operasi pada jenis yang lebih kecil ini, pengkompil menggunakan arahan aritmetik int.
Hasil int 'a' 'b' ialah 195, kerana kod Unicode titik untuk 'a' dan 'b' ialah 97 dan 98, masing-masing.
Walau bagaimanapun, perlu diperhatikan bahawa tingkah laku ini tidak terpakai kepada pengendali tugasan kompaun seperti =. Sebagai contoh, kod berikut mengakibatkan ralat penyusunan:
char x = 1, y = 2; x = x + y; // Error: possible loss of precision
Untuk mengelakkan ralat ini, hantaran eksplisit ke char diperlukan:
x = (char)(x + y);
Sebagai alternatif, pengendali tugasan kompaun boleh digunakan, yang melakukan penukaran secara automatik:
x += y;
Untuk menentukan jenis data ungkapan 'a' 'b', perkara berikut boleh digunakan:
System.out.println(((Object)('a' + 'b')).getClass());
Ini akan mencetak kelas java.lang.Integer, mengesahkan bahawa hasilnya ialah int.
Atas ialah kandungan terperinci Bagaimanakah Java Mengendalikan Operasi Aritmetik pada Jenis Data `char`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!