Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Melakukan pengecualian logis pada dua Boolean ekspresi, atau pengecualian bitwise pada dua ekspresi numerik.
Sintaksis
result = expression1 Xor expression2
Bagian
result
Dibutuhkan. Variabel apa pun Boolean atau numerik. Untuk perbandingan Boolean, result adalah pengecualian logis (disjunksi logis eksklusif) dari dua Boolean nilai. Untuk operasi bitwise, result adalah nilai numerik yang mewakili pengecualian bitwise (disjunksi bitwise eksklusif) dari dua pola bit numerik.
expression1
Dibutuhkan. Ekspresi apa pun Boolean atau numerik.
expression2
Dibutuhkan. Ekspresi apa pun Boolean atau numerik.
Komentar
Untuk perbandingan Boolean, result adalah True jika dan hanya jika tepat salah satu dari expression1 dan expression2 mengevaluasi ke True. Artinya, jika dan hanya jika expression1 dan expression2 mengevaluasi ke nilai yang berlawanan Boolean . Tabel berikut ini menggambarkan bagaimana result ditentukan.
Jika expression1 adalah |
Dan expression2 adalah |
Nilainya result adalah |
|---|---|---|
True |
True |
False |
True |
False |
True |
False |
True |
True |
False |
False |
False |
Nota
Dalam perbandingan Boolean, Xor operator selalu mengevaluasi kedua ekspresi, yang dapat mencakup melakukan panggilan prosedur. Tidak ada rekan sirkuit pendek untuk Xor, karena hasilnya selalu tergantung pada kedua operan. Untuk operator logis sirkuit pendek , lihat Operator AndAlso dan Operator OrElse.
Untuk operasi bitwise, Xor operator melakukan perbandingan bitwise dari bit yang diposisikan secara identik dalam dua ekspresi numerik dan mengatur bit result yang sesuai sesuai dengan tabel berikut.
Jika bit in expression1 adalah |
Dan bit di expression2 adalah |
Bit di result adalah |
|---|---|---|
| 1 | 1 | 0 |
| 1 | 0 | 1 |
| 0 | 1 | 1 |
| 0 | 0 | 0 |
Nota
Karena operator logis dan bitwise memiliki prioritas yang lebih rendah daripada operator aritmatika dan relasional lainnya, operasi bitwise apa pun harus diapit dalam tanda kurung untuk memastikan eksekusi yang akurat.
Misalnya, 5 Xor 3 adalah 6. Untuk melihat mengapa demikian, konversikan 5 dan 3 ke representasi biner mereka, 101 dan 011. Kemudian gunakan tabel sebelumnya untuk menentukan bahwa 101 Xor 011 adalah 110, yang merupakan representasi biner dari angka desimal 6.
Tipe Data
Jika operand terdiri dari satu Boolean ekspresi dan satu ekspresi numerik, Visual Basic mengonversi Boolean ekspresi menjadi nilai numerik (–1 untuk True dan 0 untuk False) dan melakukan operasi bitwise.
Untuk perbandingan Boolean , jenis data hasilnya adalah Boolean. Untuk perbandingan bitwise, jenis data hasil adalah jenis numerik yang sesuai untuk jenis expression1 data dan expression2. Lihat tabel "Perbandingan Relasional dan Bitwise" di Tipe Data Hasil Operator.
Beban Berlebih
Operator Xor dapat kelebihan beban, yang berarti bahwa kelas atau struktur dapat menentukan kembali perilakunya ketika operand memiliki jenis kelas atau struktur tersebut. Jika kode Anda menggunakan operator ini pada kelas atau struktur seperti itu, pastikan Anda memahami perilaku yang ditentukan ulang. Untuk informasi selengkapnya, lihat Prosedur Operator.
Contoh 1
Contoh berikut menggunakan Xor operator untuk melakukan pengecualian logis (disjunksi logis eksklusif) pada dua ekspresi. Hasilnya adalah Boolean nilai yang mewakili apakah tepat salah satu ekspresinya adalah True.
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck, thirdCheck As Boolean
firstCheck = a > b Xor b > c
secondCheck = b > a Xor b > c
thirdCheck = b > a Xor c > b
Contoh sebelumnya menghasilkan hasil , False, Truedan False, masing-masing.
Contoh 2
Contoh berikut menggunakan Xor operator untuk melakukan pengecualian logis (disjunksi logis eksklusif) pada bit individu dari dua ekspresi numerik. Bit dalam pola hasil diatur jika tepat salah satu bit yang sesuai dalam operand diatur ke 1.
Dim a As Integer = 10 ' 1010 in binary
Dim b As Integer = 8 ' 1000 in binary
Dim c As Integer = 6 ' 0110 in binary
Dim firstPattern, secondPattern, thirdPattern As Integer
firstPattern = (a Xor b) ' 2, 0010 in binary
secondPattern = (a Xor c) ' 12, 1100 in binary
thirdPattern = (b Xor c) ' 14, 1110 in binary
Contoh sebelumnya menghasilkan hasil masing-masing 2, 12, dan 14.