개발 프로세스/Back-end
[Java] 연산자 : 관계 연산자, 논리 연산자, 비트 연산자
slowreem
2021. 4. 5. 15:57
2. 관계 연산자
2-1. 관계 연산자의 종류
관계 연산자 | 의미 | 설명 |
== | 같다 | 두 값이 동일하면 참이다 |
!= | 같지 않다 | 두 값이 다르면 참이다 |
> | 크다 | 왼쪽이 크면 참이다 |
< | 작다 | 왼쪽이 작으면 참이다 |
>= | 크거나 같다 | 왼쪽이 크거나 같으면 참이다 |
<= | 작거나 같다 | 왼쪽이 작거나 같으면 참이다 |
2-2. 관계 연산자와 대입 연산자의 차이점
- == (관계연산자) : 값이 같은지 확인
- = (대입 연산자) : 오른쪽의 값을 왼쪽에 대입
3. 논리 연산자
3-1. 논리 연산자의 종류
AND와 OR의 경우 연산자를 하나씩(&, |)만 써도 수행에 문제가 없지만 비트 연산자와의 구분을 위해 두 번 쓰는 것(&&, ||)이 권장된다.
논리 연산자 | 의미 | 설명 |
&& 또는 & | AND | 둘 다 참이어야 참 |
|| 또는 | | OR | 둘 중 하나만 참이어도 참 |
! | NOT | 참이면 거짓, 거짓이면 참 |
^ | XOR | 피연산자가 하나는 참이고 다른 하나가 거짓일 경우에만 참 |
3-2. true(O), false(X) 표
A | B | A && B | A || B | !A | A^B |
O | O | O | O | X | X |
O | X | X | O | X | O |
X | O | X | O | O | O |
X | X | X | X | O | X |
4. 비트 연산자
비트(bit) 연산자는 정수나 문자 등을 2진수로 변환한 다음 각 자리의 비트끼리 연산을 수행한다. 비트 연산자에 대해 이해하려면 먼저 2진수와 16진수의 개념과 변환 방법을 명확히 알아야 한다.
4-1. 비트 연산자의 종류
비트 연산자 | 설명 | 의미 |
& | 비트 논리곱 연산자(AND) | 둘 다 1이면 1이다. |
| | 비트 논리합 연산자(OR) | 둘 중 하나만 1이면 1이다. |
^ | 비트 배타적 논리합 연산자(XOR) | 둘이 같으면 0이고, 둘이 다르면 1이다. |
~ | 비트 부정 연산자 | 1은 0으로 바꾸고, 0은 1로 바꾼다. |
<< | 왼쪽 시프트 연산자 | 비트를 왼쪽으로 시프트한다. |
>> | 오른쪽 시프트 연산자 | 비트를 오른쪽으로 시프트한다. |
4-2. 비트 논리곱 연산자 &
1 | 0 | 1 | 0 | ← | 10 |
0 | 1 | 1 | 1 | ← | 7 |
0 | 0 | 1 | 0 | → | 2 |
System.out.printf("10 & 7 = %d \n", 10 & 7 );
2
4-3. 비트 논리합 연산자 |
1 | 0 | 1 | 0 | ← | 10 |
0 | 1 | 1 | 1 | ← | 7 |
1 | 1 | 1 | 1 | → | 15 |
System.out.printf("10 | 7 = %d \n", 10 | 7 );
15
4-4. 비트 배타적 논리합 연산자 ^
1 | 0 | 1 | 0 | ← | 10 |
0 | 1 | 1 | 1 | ← | 7 |
1 | 1 | 0 | 1 | → | 13 |
System.out.printf("10 ^ 7 = %d \n", 10 ^ 7 );
13
4-5. 비트 부정 연산자 ~
비트 부정 연산자(또는 보수 연산자)는 각 비트를 반대로 만드는 연산자이다. 즉 0은 1로 바꾸고, 1은 0으로 바꾼다. 이렇게 반전된 값을 1의 보수라 하며, 그 값에 1을 더한 값을 2의 보수라 한다. 비트 부정 연산자는 해당 값의 음수(-)를 찾고자 할 때 사용한다.
int a = 12345;
System.out.printf("%d \n", ~a); // 1의 보수
System.out.printf("%d \n", ~a + 1); // 2의 보수 (음수)
-12346
-12345
<참고 자료>
www.hanbit.co.kr/store/books/look.php?p_code=B2486465157
IT CookBook, 자바 프로그래밍 for Beginner
자바는 C 언어와 함께 모든 스포츠 선수가 필수로 갖춰야 할 ‘체력’과 같습니다. 체력이 좋은 선수는 어떤 종목을 선택하더라도 금방 적응해서 좋은 결과를 얻을 수 있듯이 자바에 익숙해진다
www.hanbit.co.kr