Operator Xor (Visual Basic)
Melakukan pengecualian logis pada dua ekspresi Boolean
, atau pengecualian per bit pada dua ekspresi numerik.
Sintaks
result = expression1 Xor expression2
Generator
result
Harus diisi. Variabel Boolean
atau numerik apa pun. Untuk perbandingan Boolean, result
adalah pengecualian logis (disjungsi logis eksklusif) dari dua nilai Boolean
. Untuk operasi per bit, result
adalah nilai numerik yang mewakili pengecualian per bit (disjungsi per bit eksklusif) dari dua pola bit numerik.
expression1
Harus diisi. Ekspresi Boolean
atau numerik apa pun.
expression2
Harus diisi. Ekspresi Boolean
atau numerik apa pun.
Keterangan
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 Boolean
yang berlawanan. Tabel berikut ini menggambarkan bagaimana result
ditentukan.
Jika expression1 adalah |
Dan expression2 adalah |
Nilai dari result adalah |
---|---|---|
True |
True |
False |
True |
False |
True |
False |
True |
True |
False |
False |
False |
Catatan
Dalam perbandingan Boolean, operator Xor
selalu mengevaluasi kedua ekspresi, yang dapat mencakup melakukan panggilan prosedur. Tidak ada sirkuit pendek lain ke Xor
, karena hasilnya selalu tergantung pada kedua operand. Untuk operator logis sirkuit pendek, lihat Operator AndAlso dan Operator OrElse.
Untuk operasi per bit, operator Xor
melakukan perbandingan per bit yang diposisikan secara identik dalam dua ekspresi numerik dan mengatur bit yang sesuai dalam result
berdasarkan tabel berikut.
Jika bit dalam expression1 adalah |
Dan bit dalam expression2 adalah |
Bit dalam result adalah |
---|---|---|
1 | 1 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
Catatan
Karena operator logis dan per bit memiliki prioritas yang lebih rendah daripada operator aritmetika dan relasi lainnya, operasi per bit apa pun harus diapit dalam tanda kurung untuk memastikan eksekusi yang akurat.
Misalnya, 5 Xor
3 adalah 6. Untuk mengetahui mengapa demikian, konversikan 5 dan 3 ke representasi binernya, yaitu 101 dan 011. Kemudian gunakan tabel sebelumnya untuk menentukan bahwa 101 Xor 011 adalah 110, yang merupakan representasi biner dari desimal angka 6.
Jenis Data
Jika operand terdiri dari satu ekspresi Boolean
dan satu ekspresi numerik, Visual Basic akan mengonversi ekspresi Boolean
menjadi nilai numerik (–1 untuk True
dan 0 untuk False
) dan melakukan operasi per bit.
Sebagai perbandingan Boolean
, jenis data dari hasilnya adalah Boolean
. Untuk perbandingan bitwise, jenis hasil data adalah jenis numerik yang sesuai untuk jenis data expression1
dan expression2
. Lihat tabel "Perbandingan Relasi dan Per Bit" di Jenis Data Hasil Operator.
Kelebihan beban
Operator Xor
dapat kelebihan beban, yang berarti bahwa kelas atau struktur dapat mendefinisikan ulang perilakunya saat operand memiliki jenis kelas atau struktur tersebut. Jika kode Anda menggunakan operator ini pada kelas atau struktur seperti itu, pastikan Anda memahami perilakunya yang didefinisikan ulang. Untuk informasi lebih lanjut, lihat Prosedur Operator.
Contoh 1
Contoh berikut menggunakan operator Xor
untuk melakukan pengecualian logis (disjungsi logis eksklusif) pada dua ekspresi. Hasilnya adalah nilai Boolean
yang mewakili apakah tepat salah satu ekspresinya adalah True
atau tidak.
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 memberikan hasil masing-masing False
, True
, dan False
.
Contoh 2
Contoh berikut menggunakan operator Xor
untuk melakukan pengecualian logis (disjungsi logis eksklusif) pada dua bit individu dari dua ekspresi numerik. Bit dalam pola hasil akan diatur jika tepat salah satu bit yang sesuai dalam operand diatur ke nilai 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 mengeluarkan hasil masing-masing 2, 12, dan 14.
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk