XOR 연산자는 비트 연산자로, 비트 값이 서로 다르면 1을 리턴하고 같으면 0을 리턴하는 연산자입니다.
예를 들어, 아래와 같이 십진수 10과 15의 XOR 연산을 수행하면 결과는 5가 리턴됩니다. XOR은 비트 연산자이기 때문에 10진수를 2진수로 변환하고, 두 숫자의 2진수에서 동일한 위치의 비트끼리 XOR 연산을 합니다. XOR 연산자는 비트가 같으면 0을 리턴, 다르면 1을 리턴합니다. 이렇게 2진수 '0101'이 리턴되며, 10진수로 5가 됩니다.
10 (Decimal) = 1010
XOR 15 (Decimal) = 1111
--------------------------
5 (Decimal) = 0101
1. Integer의 XOR 연산
자바에서 XOR의 연산자는 ^
입니다. 만약 10과 15에 대해서 XOR 연산을 하려면 10 ^ 15
로 입력하시면 됩니다.
위에서 설명한 것 처럼, 비트가 같으면 0을, 다르면 1을 리턴하기 때문에 10과 15의 XOR 결과는 5가 됩니다.
아래는 몇가지 XOR 연산을 수행하는 예제입니다.
public class Example {
public static void main(String[] args) {
int n1 = 10;
int n2 = 15;
int result = n1 ^ n2;
System.out.println("10 ^ 15 = " + result);
System.out.println("11 ^ 11 = " + (11 ^ 11));
System.out.println("0 ^ 10 = " + (0 ^ 10));
System.out.println("14 ^ 13 = " + (14 ^ 13));
}
}
Output:
10 ^ 15 = 5
11 ^ 11 = 0
0 ^ 10 = 10
14 ^ 13 = 3
2. Boolean의 XOR 연산
boolean은 bit로 표현하면 0(false) 또는 1(true)입니다. Integer와 동일한 방식으로 XOR 연산을 할 수 있습니다. 대신 bit가 1개 뿐이 없다고 생각하시면 됩니다.
아래 예제는 다양한 Boolean 조합의 XOR을 연산하는 예제입니다.
public class Example {
public static void main(String[] args) {
System.out.println("false ^ false = " + (false ^ false));
System.out.println("false ^ true = " + (false ^ true));
System.out.println("true ^ false = " + (true ^ false));
System.out.println("true ^ true = " + (true ^ true));
}
}
Output:
false ^ false = false
false ^ true = true
true ^ false = true
true ^ true = false
2.1 '!=' 연산자로 XOR 계산
Boolean의 경우, XOR 연산은 !=
연산의 결과와 같습니다. !=
는 두개의 Boolean이 서로 다르면 true, 같으면 false를 리턴하기 때문입니다.
public class Example {
public static void main(String[] args) {
System.out.println("false ^ false = " + (false != false));
System.out.println("false ^ true = " + (false != true));
System.out.println("true ^ false = " + (true != false));
System.out.println("true ^ true = " + (true != true));
}
}
Output:
false ^ false = false
false ^ true = true
true ^ false = true
true ^ true = false
Loading script...
Related Posts
- Java - Unsupported class file major version 61 에러
- Java - String.matches()로 문자열 패턴 확인 및 다양한 예제 소개
- Java - 문자열 공백제거 (trim, replace)
- Java - replace()와 replaceAll()의 차이점
- Java - ArrayList 초기화, 4가지 방법
- Java - 배열 정렬(Sorting) (오름차순, 내림차순)
- Java - 문자열(String)을 비교하는 방법 (==, equals, compare)
- Java - StringBuilder 사용 방법, 예제
- Java - 로그 출력, 파일 저장 방법 (Logger 라이브러리)
- Java IllegalArgumentException 의미, 발생 이유
- Java - NullPointerException 원인, 해결 방법
- Seleninum의 ConnectionFailedException: Unable to establish websocket connection 해결
- Java - compareTo(), 객체 크기 비교
- Java - BufferedWriter로 파일 쓰기
- Java - BufferedReader로 파일 읽기
- Java charAt() 함수 알아보기
- Java - BigInteger 범위, 비교, 연산, 형변환
- Java contains()로 문자(대소문자 X) 포함 확인
- Java - Set(HashSet)를 배열로 변환
- Java - 문자열 첫번째 문자, 마지막 문자 확인
- Java - 문자열 한글자씩 자르기
- Java - 문자열 단어 개수 가져오기
- Java - 1초마다 반복 실행
- Java - 배열을 Set(HashSet)로 변환
- Java - 여러 Set(HashSet) 합치기
- Java - 명령행 인자 입력 받기
- Java - 리스트 역순으로 순회, 3가지 방법
- Java - 특정 조건으로 리스트 필터링, 3가지 방법
- Java - HashMap 모든 요소들의 합계, 평균 계산
- Java - 특정 조건으로 HashMap 필터링
- Java - 싱글톤(Singleton) 패턴 구현
- Java - 숫자 왼쪽에 0으로 채우기
- Java - String 배열 초기화 방법
- Java - 정렬된 순서로 Map(HashMap) 순회
- Java - HashMap에서 key, value 가져오기