자바의 연산자들 -3 (조건 연산자, 비트 연산자)

    조건 연산자

    • 삼항 연산자
    • 조건식의 결과가 true(참)인 경우와 false(거짓)인 경우에 따라 다른 결과가 수행됨
    • if (조건문)을 간단히 표현할 때 사용 할 수 있음

    package ch13;
    
    import java.util.Scanner;
    
    public class ConditionTest {
    
    	public static void main(String[] args) {
    
    		int max;
    		System.out.println("입력 받은 두 수중 큰 수를 출력하세요\n ");
    		
    		Scanner scanner = new Scanner(System.in);
    		System.out.println("입력1:");
    		int x = scanner.nextInt();
    		System.out.println("입력2:");
    		int y = scanner.nextInt();
    		
    		max = (x > y)? x : y;
    		System.out.println(max);
    	}
    }
    

    비트 연산자

    • 대입연산자와 다른 연산자가 함께 쓰임
    • 마스크 : 특정 비트를 가리고 몇 개의 비트 값만 사용할 때
    • 비트켜기 : 특정 비트들만을 1로 설정해서 사용하고 싶을 때
      예) & 00001111 ( 하위 4비트 중 1인 비트만 꺼내기)
    • 비트끄기 : 특정 비트들만을 0으로 설정해서 사용하고 싶을 때
      예) | 11110000 ( 하위 4비트 중 0 인 비트만 0으로 만들기)
    • 비트 토글 : 모든 비트들을 0은 1로, 1은 0으로 바꾸고 싶을 때

    비트(bit)와 바이트(byte)

    • 비트는 컴퓨터가 처리하는 정보의 최소단위인데, 한 개만으로는 많은 양의 데이터를 나타내기에 턱없이 부족하기 때문에 정보를 표현하는 기본단위로는 8개의 비트를 묶은 바이트(Byte)를 사용한다
    • 1byte는 00000000부터 11111111까지 값을 표현할 수 있다.
    • 1byte는 정수로 표현하면 0부터 254까지 표현이 가능하다.
    • 1byte를 16진수로 표현하면 00부터 FF까지 표현이 가능하다. 4bit는 0부터 15까지 표현 가능하기 때문이다.

    - >>> 는 지정한 수만큼 비트를 전부 오른쪽으로 이동시키며, 새로운 비트는 전부 0이 된다

    • >>> 는 그 결과 무조건 양수가 나온다.
    • 10000000 >>> 2 를 하게 되면  00100000 가 된다
    • 10000000 는 음수, 00100000 는 양수이다.

     

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

    연산자 우선순위

    댓글