배타적 or 연산자(Visual Basic)
두 Boolean
식에 논리 제외를 수행하거나 두 숫자 식에 비트 제외를 수행합니다.
구문
result = expression1 Xor expression2
부분
result
필수입니다. 임의의 Boolean
또는 숫자 변수입니다. 부울 비교의 경우, result
는 두 Boolean
값의 논리 제외(배타적 논리합)입니다. 비트 연산의 경우 result
는 두 숫자 비트 패턴의 비트 제외(배타적 비트 논리합)를 나타내는 숫자 값입니다.
expression1
필수입니다. 임의의 Boolean
또는 숫자 식입니다.
expression2
필수입니다. 임의의 Boolean
또는 숫자 식입니다.
설명
부울 비교의 경우, expression1
과 expression2
중 하나가 True
로 평가되는 경우에만 result
는 True
입니다. 즉, expression1
과 expression2
가 반대 Boolean
값으로 평가되는 경우입니다. 다음 표에서는 result
가 결정되는 방법을 보여 줍니다.
expression1 |
expression2 |
result 값 |
---|---|---|
True |
True |
False |
True |
False |
True |
False |
True |
True |
False |
False |
False |
참고 항목
부울 비교에서 Xor
연산자는 항상 프로시저 호출을 포함할 수 있는 두 식을 모두 평가합니다. 결과는 항상 두 피연산자 모두에 따라 달라지므로, Xor
에 대응하는 단락이 없습니다. 단락 논리 연산자에 대해서는 AndAlso 연산자 및 OrElse 연산자를 참조하세요.
비트 연산의 경우 Xor
연산자는 두 숫자 식에서 동일하게 배치된 비트의 비트 비교를 수행하고 다음 표에 따라 result
에 해당 비트를 설정합니다.
expression1 의 비트가 다음과 같은 경우 |
그리고 expression2 의 비트는 다음과 같습니다. |
result 의 비트는 다음과 같습니다. |
---|---|---|
1 | 1 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
참고 항목
논리 연산자와 비트 연산자는 다른 산술 연산자 및 관계형 연산자보다 우선 순위가 낮으므로 정확한 실행을 위해 비트 연산을 괄호로 묶어야 합니다.
예를 들어 5 Xor
3은 6입니다. 이러한 이유를 확인하려면 5와 3을 이진 표현인 101 및 011로 변환합니다. 그런 다음, 이전 테이블을 사용하여 101 Xor 011이 110(10진수 6의 이진 표현)인지 확인합니다.
데이터 형식
피연산자가 하나의 Boolean
식과 하나의 숫자 식으로 구성된 경우 Visual Basic은 Boolean
식을 숫자 값(True
의 경우 -1, False
의 경우 0)으로 변환하고 비트 연산을 수행합니다.
Boolean
비교의 경우 결과의 데이터 형식은 Boolean
입니다. 비트 비교의 경우 결과 데이터 형식은 expression1
및 expression2
의 데이터 형식에 적절한 숫자 형식입니다. 연산자 결과의 데이터 형식에서 "관계형 및 비트별 비교" 표를 참조하세요.
오버로딩
Xor
연산자는 오버로드될 수 있습니다. 즉, 피연산자가 해당 클래스 또는 구조체 형식을 가질 때 클래스 또는 구조체의 동작을 재정의할 수 있습니다. 코드에서 이러한 클래스나 구조체에 대해 이 연산자를 사용하는 경우 재정의된 동작을 이해해야 합니다. 자세한 내용은 Operator Procedures을 참조하세요.
예 1
다음 예에서는 Xor
연산자를 사용하여 두 식에 대한 논리적 분리(배타적 논리합)를 수행합니다. 결과는 두 식 중 하나가 정확히 True
인지 여부를 나타내는 Boolean
값입니다.
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
이전 예제에서는 각각 False
, True
, False
의 결과를 생성합니다.
예제 2
다음 예에서는 Xor
연산자를 사용하여 두 숫자 식의 개별 비트에 대해 논리적 제외(배타적 논리합)를 수행합니다. 피연산자의 해당 비트 중 하나가 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
이전의 예제에서는 각각 2, 12, 14의 결과를 생성합니다.
참고 항목
.NET