
Carta Perbandingan
Asas untuk Perbandingan | & | && |
---|---|---|
Pengendali | Ia adalah "Operator Bitwise". | Ia adalah "Operator Logik". |
Penilaian | Ia menilai kedua-dua sebelah kiri dan kanan ungkapan tersebut. | Ia hanya menilai sebelah kiri ungkapan. |
Beroperasi | Ia beroperasi pada "Data jenis Boolean" serta beroperasi pada "bit". | Ia hanya beroperasi pada "Data jenis Boolean". |
Guna | Gunakan untuk memeriksa keadaan logik dan juga digunakan untuk menanggalkan bit tertentu seperti bit parity. | Digunakan hanya untuk memeriksa keadaan logik. |
Definisi & (Bitwise DAN)
Pengendali '&' ini digunakan sebagai kedua, pengendali logik (&) dan operator bitwise. Ia berfungsi pada boolean serta data binari. Apabila & pengendali digunakan sebagai logik & pengendali kemudian, ia menghasilkan "benar" jika kedua-dua sisi ungkapan penilaian adalah benar, maka ia mengembalikan "palsu". Ia membolehkan pengkompil untuk menilai kedua-dua sisi ungkapan. Iaitu, walaupun sebelah kiri hasil ekspresi palsu, ia menilai sisi kanan ekspresi.
Membolehkan kita memahami ini dengan contoh.
int a = 4, b = 5; system.out.println ((a == 6) & (b ++ == 6)); system.out.println ("b =" + b); // output palsu b = 5
Di sini, apabila menilai sebelah kiri ungkapan (a == 6), ia menghasilkan palsu, & operator kemudian menilai sebelah kanan ungkapan (b ++ == 6) sebagai hasilnya, nilai penambahan b.
Apabila '&' digunakan sebagai "pengendali bitwise", ia mula-mula menukar kedua-dua pengendali ke dalam bentuk binari dan kemudian beroperasi menggunakannya & operator, bit-by-bit. Selepas operasi, hasil yang diperoleh, adalah dalam bentuk binari, yang kemudian ditukar menjadi perpuluhan. Mana-mana bit yang 0 dalam kedua-dua operan menghasilkan 0. Jika kedua-dua bit operan adalah 1, maka bit yang dihasilkan ialah 1. Bitwise & operator ditadbir oleh jadual kebenaran yang sama seperti logik & operatornya.
Marilah kita melihat operasi & pengendalian bitwise.
int a; a = 3 & 4; // 011 & 100 = 000 system.out.println ("a =" + a); // output a = 0
Di sini, nilai perpuluhan 3 dan 4 mula-mula ditukarkan ke dalam bentuk binari mereka, dan kemudian operator & bitwise melakukan & operasi pada mereka bit-by-bit. Hasil yang diperoleh adalah dalam bentuk binari, yang kemudiannya diubah menjadi bentuk perpuluhan lagi.
Definisi && (Litar pintas DAN)
Operator && ini berfungsi sebagai pengendali logik. Ia beroperasi hanya pada jenis data boolean. Ia juga dipanggil pengendali litar pintas. Kerana ia hanya memeriksa sebelah kiri ungkapan. Sekiranya sebelah kiri ekspresi menghasilkan palsu, maka tidak mengganggu untuk menilai sisi kanan ekspresi.
Membolehkan kami memahami kerja operator & & dengan contoh.
int a = 4, b = 5; system.out.println ((a == 6) && (b ++ == 6)); system.out.println ("b =" + b); // output palsu b = 4
Di sini, sebagai keadaan (a == 6) adalah salah, pengendali && tidak menilai ungkapan (b ++ == 6) sebagai hasilnya, nilai b tidak meningkat.
Perbezaan Utama Antara & & & &&
- & Operator adalah logik dan juga pengendali bitwise, kerana ia beroperasi pada kedua boolean serta data perduaan sedangkan pengendali & & adalah operator logikal kerana ia beroperasi hanya pada jenis data boolean.
- & Operator mengevaluasi kedua sisi ungkapan untuk memperoleh hasil akhir sedangkan pengendali & & mengevaluasi hanya sisi kiri ekspresi & jika ternyata palsu itu tidak mengevaluasi sisi kanan ekspresi.
Catatan:
Semasa menilai jenis data boolean, kedua-dua pengendali menghasilkan "benar" hanya jika kedua-dua pengendali itu benar, maka ia mengembalikan "palsu".
Kesimpulan:
Pengendali & & &&, kedua-duanya digunakan untuk menilai keadaan boolean sedangkan, operator & juga digunakan untuk operasi bitwise. Apabila kita memerlukan untuk menilai kedua-dua sisi ungkapan & operator digunakan lain kita boleh menggunakan operator & &.