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);
		
	}

}
 

 

* 실행결과

 


 

가독성 좋은 코드의 중요성

 

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