Sunday, August 01, 2010
Retabbed
Login | Register
아티클
  Search
컴퓨터 기초[2] - 16진수
컴퓨터 기초[2] - 16진수

앞에서 본바와 같이 컴퓨터는 2진수를 그 사고의 기본으로 한다. 그런데 2진수는 실제 사용하는 숫자를 표시했을때 너무 길어서 다루기가 불편하다. 좋은 방법이 없을까? 초기의 소프트웨어 개발자들은 16진수를 사용하기 시작했다. 당연히 지금도 16진수를 가장 많이 사용한다.

16진수란 무엇일까? 여기서 진법에 대한 장황한 강의는 하지 않겠다. 적절한 산수책(?) 혹은 수학책을 참고하기 바란다. 진법이란 숫자를 표시하는 각 자리수의 최대크기를 정하는 방법이다. 10진수는 각 자리마다 0~9까지 10개, 2진수는 0,1 두개, 8진수는 0~7까지 7개이다. 당연히 16진수는 0~15까지 15개다. 15개를 한자리에 표시하려다 보니 일반적으로 많이 사용하는 숫자인 10진수의 숫자만으로는 16진수를 표현할 수 없다. 그래서 16진수에는 알파벳이 등장한다.

10진수로 표시할수 없는 10,11,12,13,14,15를 각각 A,B,C,D,E,F로 표시한다. 그러므로 한바이트의 최대값

11111111(이진수) = 255(10진수) = FF(16진수)

그런데 왜 많은 진법중에 16진수를 택했을까? 우선 컴퓨터가 2진수이므로 2의 제곱에 해당하는 진법을 써야 한다. 이또한 장황하게 설명하면 길어지므로 생략한다. 제곱에 해당하는 진법을 사용하면 양쪽값을 서로 바꾸는것이 편하기 때문이다. 2의 제곱에 해당하는 가능한 숫자들로는 4,8,16이 있을수 있다. 더 큰것들도 가능하지만 어디까지나 16진수를 쓰는 이유는 사람이 보기 편하기 위한 것이므로 너무큰 진법은 표시상 큰 어려움이 따른다.

2진수를 4,8,16 진수로 바꾸는 것은 매우 간단하다. 4진수는 2진수를 두자리씩, 8진수는 3자리씩, 16진수는 4자리씩 잘라서 생각하면된다. 4=22, 8=23, 16=24 제곱에 해당하는 숫자만큼 자르면 되는 것이다. 이렇게 되는 원리를 이해하고 싶다면 수학공부를 조금 더 하면 금방 알 수 있을 것이다. 실험적으로 하나 해보자.

1000100010001000(이진수) 를 4진수로 바꾸면
10 00 10 00 10 00 10 00  = 20202020

8진수로 바꾸면
1 000 100 010 001 000 = 107210

16진수로 바꾸면
1000 1000 1000 1000 = 8888

이러한 16진수의 개념은 최신 컴퓨터 언어라 할 수 있는 HTML에 까지 그 영향력을 미치고 있으며 HTML에서 색상을 표시할때 16진수를 사용하여 색상을 표현하는 것을 볼 수 있다. 16진수의 기본자리수인 4비트 값을 특별히 니블(nibble)이라 부르는 경우가 있다. 컴퓨터 자체 구조와 아무 관련이 없지만 최초의 컴퓨터와 인간의 대화를 만들어 나갔던 프로그래들의 16진수 사용으로 인하여 만들어진 단어다.

 


게시일자 Sunday, November 18, 2007 (Archive on Sunday, November 25, 2007)
게시자: 불나방  저자: 불나방
돌아가기

평점:
평가:
평가 올리기

현재평점평균: 4.14
평점: 5
저기 , 저 위에 10진수는 10개 2진수는 두개 인데 8진수는 7개고 16진수는 15개가 맞는건가요??
평점: 5
104210이네요 ; 제가틀린줄 알았음
평점: 1
평점: 5
Thanks a lot~
평점: 3
107210 이 아니라 104210 입니다.
평점: 5
평점: 5
Terms | Privacy | host
Copyright 2005 Code99.NET
 | 아티클 | 자료실 | 블로그 | Q&A | 관리자에게