프로그래밍 언어/JAVA(자바) 기초

8.자바의 연산자들(조건,비트 연산자)

lroot 2022. 5. 17. 15:21
728x90
반응형

조건연산자

- 삼항 연산자

- 조건식의 결과가 true(참)인 경우와 false(거짓)인 경우에 따라 다른 결과가 수행됨

- if(조건문)을 간단히 표현할 때 사용할 수 있음

연산자 기능
조건식 ? 결과1:결과2 조건식이 참이면 결과1,
조건식이 거짓이면 결과2가 선택됩니다.
int num=(5>3) ? 10:20;

 

예제)

public class CoditionTest {

 

public static void main(String[] args) {

 

int max;

System.out.println("두 수를 입력 받아서 더 큰 수를 출력\n");

 

Scanner scanner = new Scanner(System.in);

System.out.print("숫자1 : ");

int num1 = scanner.nextInt();

System.out.print("숫자2 : ");

int num2 = scanner.nextInt();

 

max = (num1>num2)? num1 : num2;

System.out.println(max);

 

 

비트연산자

- 대입연산자와 다른 연산자가 함께 쓰임

- 마스크 : 특정 비트를 가리고 몇 개의 비트 값만 사용할 때

- 비트켜기 : 특정 비트들만을 1로 설정해서 사용하고 싶을 때

예) &00001111( 하위 4비트 중 1인 비트만 꺼내기)

- 비트끄기 : 특정 비트들만을 0로 설정해서 사용하고 싶을 때

예) |11110000 (하위 4비트 중 0인 비트만 0으로 만들기)

- 비트토글 : 모든 비트들을 0은 1로, 1은 0으로 바꾸고 싶을 때

 

연산자 설명
~ 비트의 반전(1의 보수) a = ~a;
& 비트 단위 AND 1 & 1 1반환 그 외는 0
| 비트 단위 OR 0|0 0반환 그 외는 1
^ 비트 단위 XOR 두 개의 비트가 서로 다른 경우에 1을 반환
<< 왼쪽 shift a<<2 변수 a를 2비트만큼 왼쪽으로
이동
>> 오른쪽 shift a>>2 변수 a를 2비트만큼 오른쪽으로 이동
>>> 오른쪽 shift >>동일한 연산
채워지는 비트가 부호와 상관 없이 
0임

 

 

예제)

public class BitTest {

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);
System.out.println(num1);
System.out.println(num1 <<= 2);
System.out.println(num1);

}

}

 

 

연산자 우선순위

우선순위 연산자 방향
1 일차식 () [] . ->
2 단항 ! ++ -- + - <-
3 산술 % / ->
4 산술 + - ->
5 비트 이동 << >> ->
6 관계 <> <= >= ->
7 관계 == != ->
8 비트 곱 & ->
9 비트 차 ^ ->
10 비트 합 | ->
11 논리 곱 && ->
12 논리 합 || ->
13 조건 ? : ->
14 대입 = += -= *= %= /= <-