학교/2-2학기(Java)

[2주차] 9/11 강의내용

C0MPAS 2024. 9. 11. 23:12

1. 자바에서의 키 입력

-> System.in

-> Scanner를 이용한 키 입력

-> nextLine( )과 next( )


 

2. 비트 연산

-> 비트 논리 연산

-> 비트 시프트 연산


 

3. 실습문제 12번

import java.util.Scanner;

public class LecturePractice {
	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);
		int status = scanner.nextInt();
		

		if((status & 0b10000000) == 0)
		{
			System.out.print("자동차는 정지 상태이고 ");
		}		
		else if((status & 0b010000000) != 0)
		{
			System.out.print("자동차는 달리는 상태이고 ");
		}
		
		

		if((status & 0b01000000) == 0)
		{
			System.out.print("에어컨이 꺼진 상태이고 ");
		}	
		else if((status & 0b01000000) != 0)
		{
			System.out.print("에어컨이 켜진 상태이고 ");
		}

		
		/*
		byte new_status = (byte)(status);
		byte temp = (byte)(new_status >>> 2);
		System.out.print("온도는 " + (int)temp + "도이다.");
		*/
		
		int temp = (status & 0b00111111);
		System.out.print("온도는 " + (int)temp + "도이다.");
		
		scanner.close();

	}
}

->

주석 처리한 부분처럼,

괜히 비트 연산자를 가지고 타입변환하고, 비트 시프트 연산을 하려다가 실패함

-> 

문제가 안풀릴때는 크게 보면서 다시 방법을 찾아보아야할 것 같다.

괜히 내가 잘못 접근한 방식만을 고집하다가 시야가 좁아져서 새로운 방식으로의 접근을 생각하지 못했다.


예제출처: 명품 JAVA Programming(개정 5판), 생능출판사