개발은 어려워

JAVA, 종이접기 (2) 본문

JAVA

JAVA, 종이접기 (2)

창호코딩 2019. 6. 18. 13:24

이전 게시물과 동일하게 종이접기에 대한 내용을 함께 해보실텐데요!

 

이번에는 내가 컴퓨터가 되었다고 생각하고 접근해보고자 합니다.

 

저희는 10진수를 쓰지만 컴퓨터는 몇 진수를 쓸까요?

 

바로 2진수입니다.

 

0과 1 밖에 없죠!

 

 

 

그래서 숫자의 구성을 보시면

 

이런 식으로 되어있습니다.

 

혹시 감이 조금 오시나요??

 

 

 

바로 비트 이동 연산자를 사용하여서 구현해보는겁니다!

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
public class FlippingPaper {
    public static void main(String[] args) {
        
        int count = 0;
        int rect = 1;
        
        for(count=0;rect<500;count++) {
            rect<<=1;                                   //비트이동// 컴퓨터는 2진수니까 한칸좌측으로 밀어서 *2해준다. //rect *=2; //rect=rect*2;
        }
        System.out.print("접은 횟수 = ");           //ln을 떼면 줄바꿈을 안한다.
        System.out.println(count);
        
        System.out.println("사각형갯수 = " + rect); // 타입을 다르게 쓸 때 +를 갖고 붙이면 자동으로 문자인식을 해준다.
    }
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter

 

이해가 되시나요?

 

이렇게 하면 컴퓨터의 입장에서 더 빠르게 연산할 수 있습니다. 

 

지금은 데이터의 양이 아주 적기 때문에 속도를 체감할 수 없지만, 나중에 방대한 양의 데이터를 처리할 때는 이 방식이 더 효율적입니다!

 

 

궁금하신 게 있으시다면 댓글을 남겨주세요!

 

이전 글 보기 ! - > 2019/06/18 - [JAVA] - JAVA, 종이접기

Comments