-
[Java] 연산자 : 관계 연산자, 논리 연산자, 비트 연산자개발 프로세스/Back-end 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
'개발 프로세스 > Back-end' 카테고리의 다른 글
[Python] random 함수 (0) 2021.06.29 [Python] 입력과 출력, 출력 서식 지정(formatting) (0) 2021.06.29 [Java] 문자열 메소드 (0) 2021.06.04 [Java] 입력과 출력 (0) 2021.04.08 terminal에서 git bash 사용하기 (0) 2021.03.15