Xor İşleci (Visual Basic)
İki ifadede mantıksal dışlama veya iki Boolean
sayısal ifadede bit düzeyinde dışlama gerçekleştirir.
Sözdizimi
result = expression1 Xor expression2
Parça
result
Gerekli. Herhangi bir Boolean
veya sayısal değişken. Boole karşılaştırması için, result
iki Boolean
değerin mantıksal dışlamasıdır (özel mantıksal ayrıştırma). Bit düzeyinde işlemler için, result
iki sayısal bit deseninin bit düzeyinde dışlanmasını (bit düzeyinde ayrıştırma) temsil eden sayısal bir değerdir.
expression1
Gerekli. Herhangi bir Boolean
veya sayısal ifade.
expression2
Gerekli. Herhangi bir Boolean
veya sayısal ifade.
Açıklamalar
Boole karşılaştırması için, result
True
if ve yalnızca tam olarak biriyse expression1
ve expression2
olarak değerlendirilir True
. Yani, if ve only if expression1
ve expression2
evaluate to opposite Boolean
values. Aşağıdaki tabloda nasıl result
belirlendiği gösterilmektedir.
Varsa expression1 |
Ve expression2 |
değeri result : |
---|---|---|
True |
True |
False |
True |
False |
True |
False |
True |
True |
False |
False |
False |
Not
Boole karşılaştırmasında Xor
, işleç her zaman yordam çağrıları yapmayı da içerebilen her iki ifadeyi de değerlendirir. sonucu her zaman her iki işlenene Xor
de bağlı olduğundan için için kısa devreli bir karşılık yoktur. Kısa devreli mantıksal işleçler için bkz. AndAlso İşleci ve OrElse İşleci.
Bit düzeyinde işlemler için işleç, Xor
iki sayısal ifadede aynı konumdaki bitlerin bit düzeyinde karşılaştırmasını gerçekleştirir ve karşılık gelen biti result
aşağıdaki tabloya göre ayarlar.
Bit içinde expression1 ise |
Ve bit içinde expression2 |
içindeki bit result : |
---|---|---|
1 | 1 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
Not
Mantıksal ve bit düzeyinde işleçler diğer aritmetik ve ilişkisel işleçlerden daha düşük önceliğe sahip olduğundan, doğru yürütmeyi sağlamak için bit düzeyindeki işlemler parantez içine alınmalıdır.
Örneğin, 5 Xor
3 6'dır. Bunun neden böyle olduğunu görmek için 5 ve 3'ü ikili gösterimleri olan 101 ve 011'e dönüştürün. Ardından 101 Xor 011'in 6 ondalık sayısının ikili gösterimi olan 110 olduğunu belirlemek için önceki tabloyu kullanın.
Veri Türleri
İşlenenler bir Boolean
ifade ve bir sayısal ifadeden oluşuyorsa, Visual Basic ifadeyi Boolean
sayısal bir değere (için True
–1 ve için False
0) dönüştürür ve bit düzeyinde bir işlem gerçekleştirir.
Karşılaştırma için Boolean
sonucun veri türü şeklindedir Boolean
. Bit düzeyinde karşılaştırma için sonuç veri türü ve expression2
veri türlerine uygun sayısal bir türdürexpression1
. İşleç Sonuçlarının Veri Türleri'ndeki "İlişkisel ve Bit Düzeyinde Karşılaştırmalar" tablosuna bakın.
Aşırı Yükleme
İşleç Xor
aşırı yüklenebilir, yani bir işlenen bu sınıf veya yapı türüne sahip olduğunda bir sınıf veya yapı davranışını yeniden tanımlayabilir. Kodunuz bu işleci böyle bir sınıf veya yapıda kullanıyorsa, yeniden tanımlanmış davranışını anladığınızdan emin olun. Daha fazla bilgi için bkz . İşleç Yordamları.
Örnek 1
Aşağıdaki örnek, iki ifadede Xor
mantıksal dışlama (özel mantıksal ayrıştırma) gerçekleştirmek için işlecini kullanır. Sonuç, ifadelerden tam olarak birinin olup olmadığını temsil eden bir Boolean
değerdir 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
Önceki örnek sırasıyla , True
ve False
sonuçlarını False
üretir.
Örnek 2
Aşağıdaki örnek, iki sayısal ifadenin Xor
tek tek bitlerinde mantıksal dışlama (özel mantıksal ayrıştırma) gerçekleştirmek için işlecini kullanır. Sonuç desenindeki bit, işlenenlerdeki karşılık gelen bitlerden biri tam olarak 1 olarak ayarlandıysa ayarlanır.
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
Önceki örnek sırasıyla 2, 12 ve 14'ün sonuçlarını üretir.