Java & Kotlin
[Java 기초] 조건 연산자, 비트 연산자
Sue
2022. 1. 19. 21:55
조건 연산자
- 조건식 ? 결과1 : 결과2
- 조건식이 참이면 결과1, 조건식이 거짓이면 결과2가 선택된다.
- if문을 간단히 표현할 때 활용하기 좋다.
* 예제 코드
- 두 수를 입력받아 더 큰 수를 출력하는 프로그램
- Scanner 클래스 활용하여 입력 받기 구현
import java.util.*;
public class ConditionTest {
public static void main(String[] args) {
int max;
System.out.println("두 수를 입력하세요.");
Scanner scanner = new Scanner(System.in);
int num1 = scanner.nextInt();
int num2 = scanner.nextInt();
max = (num1 > num2) ? num1 : num2;
System.out.println("두 수 중 더 큰 수는 " + max + " 입니다");
}
}
* 실행 결과

비트 연산자
* 종류
- AND(&) : 두 비트 모두 1일 때 1 반환, 그 외 0
- OR(|) : 두 비트 모두 0일 때 0 반환, 그 외 1
- XOR(^) : 두 비트 다를 때만 1 반환, 그외 0
- NOT(~) : 비트 반전
- 왼쪽 shift(<<) : 맨 왼쪽 비트 truncated, 원래 값 * 2^n (n은 shift 횟수)
- 오른쪽 shift(>>) : 맨 오른쪽 비트 truncated, 원래 값 / 2^n (n은 shift 횟수)
* 예제 코드
public class BitOperation {
public static void main(String[] args) {
int num1 = 5; // 00000101
int num2 = 10; // 00001010
System.out.println(num1 | num2);
System.out.println(num1 & num2);
System.out.println(num1 ^ num2);
System.out.println(~ num1);
System.out.println(num1 << 2); // num1 값이 바뀌진 않음
System.out.println(num1); // num1 = 5
System.out.println(num1 <<= 2); // 대입 연산자 사용해야 값 저장
System.out.println(num1);
}
}
* 실행결과

가독성 좋은 코드의 중요성
연산자는 우선순위가 존재해서 괄호로 명시해주지 않아도 잘 수행되지만, 협업자에게도, 나중에 다시 코드를 볼 수 있는 나에게도 가독성 있는 코드를 작성하는 것이 중요하므로 연산자가 여러개 있을 때 괄호 사용해주자!