학교/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판), 생능출판사