진법 변환하기
우리는 주로 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 |