진법 변환하기

이것저것 2014. 8. 10. 05:23

진법 변환하기

 

 

우리는 주로 10진법을 사용하고 있지만, 컴퓨터?를 사용하다 보면 2진법, 8진법, 16진법을 사용해야하는 경우가 종종 생깁니다.

왜 10진법이 아니고 2,8,16진법 같은 걸 써야하냐는건 아래에서 간단하게 다룰게요.

 
16진법 10진법 8진법 2진법
0 0 0 0 0 0 0
1 1 1 0 0 0 1
2 2 2 0 0 1 0
3 3 3 0 0 1 1
4 4 4 0 1 0 0
5 5 5 0 1 0 1
6 6 6 0 1 1 0
7 7 7 0 1 1 1
8 8 10 1 0 0 0
9 9 11 1 0 0 1
A 10 12 1 0 1 0
B 11 13 1 0 1 1
C 12 14 1 1 0 0
D 13 15 1 1 0 1
E 14 16 1 1 1 0
F 15 17 1 1 1 1

위는 진법표 입니다.

 

2진법 : 0,1로 수를 표현

8진법 : 0~7로 수를 표현

10진법 : 0~9로 수를 표현

16진법 : 0~9,A,B,C,D,E,F 16자리로 수를 표현

 

 

예제 풀이

 

10진수 123를 풀어서 써보겠습니다.

1이 10개가 모여 10이되고, 10이 10개가 모여 100이되니 풀어서 쓰면 다음과 같습니다.

(1 * 10 * 10) + (2 * 10) + 3

 

 FF라는 16진수는 10진수로하면 얼마일까요?

F는 10진수 15입니다.

그러니 15가 16개 있어야되고, 끝단뒤 F는 그냥 15를 더해주면 됩니다.

(15 * 16) + 15가 되겠죠.

그래서 255입니다.

 

 

자 그럼 왜 10진법을 사용하지 않고 다른 진법을 사용하는가?

 

컴퓨터에 정수를 사용하기위해서는 Integer로 등록되어야 하는데요.

integer로 등록되는 순간 16비트가 잡히게 됩니다.

 

기본으로 잡는 메모리의 양이 다르다는거죠.

1비트로도 충분히 표현 할 수 있는데 16비트까지 쓸 필요가 없는거죠.

이러니 연산속도도 차이가 나게 됩니다.

2,8,16진수로 표현하면 상당한 이득이 생기게 되죠.

 

예를 들면 온라인 게임에서 유저와 서버간에 패킷을 주고 받을 때, 서버는 초당 상당한양의 정보를 받아드려야 합니다. 그럴 때 데이터의 크기가 크면 클수록 처리하는데 속도에 문제가 생기겠죠.

프로그래머분들은 이걸 아주 잘 사용합니다.

관심있으시면 bit연산쪽을 찾아보시면 잼있습니다.

 

간혹 Maxscript를 하다보면 10진법이 아닌 다른 진법을 사용해야 할 경우가 생기기도 합니다.

(더 이상의 상세한 설명은 생략한다...)

 

 

아무튼 이렇게 사용되는 진법 계산을 매번 하다보면 주하입마에 빠질 수 있으니..

머리아프게 계산하지말고~ 계산기로 한방에 끝 !!!

 

 

계산기 사용 설명서?

 

주로 보는 윈도우 기본 계산기 입니다.

 

이를 프로그래머용 계산기로 변환~

 

자 이제 왼쪽옆에 보시면

Hex : 16진법

Dec : 10진법

Oct : 8진법

Bin : 2진법

 

Dec에 두고 255을 입력한뒤 Hex로 변환해보세요.

결과가 FF로 나온다면, 당신은 10진수를 16진수로 변환한 겁니다.


계산기 기능 설명하는데 서두가 너무 길었네요. 쿨럭...

 

 

'이것저것' 카테고리의 다른 글

2014 KGC 참관 후기  (0) 2014.11.10
언리얼 서밋 프리미엄 세미나 후기  (1) 2014.10.30
6÷2(1+2) 의 값은?  (0) 2014.08.07
언리얼엔진4 소개  (1) 2014.06.26
grepwin 파일 내용 검색기  (0) 2014.05.23
Posted by Hwanggoon
,