비트(bit)주세요

2진수, 8진수, 16진수와 10진수 본문

CS/전산개론

2진수, 8진수, 16진수와 10진수

yglee730 2021. 1. 3. 02:41
728x90

이번 글에서는 진수의 종류를 알아보고 2진수, 8진수, 16진수를 10진수로 바꾸거나

10진수를 2진수, 8진수, 16진수로 바꾸는 법을 알아보겠습니다.

 

컴퓨터를 공부하면서 자주 볼 내용이기 때문에, 알아두면 유용할 것입니다.

 

#진수의 종류

1) 10진수 

   10진수는 우리가 일상에서 가장 많이 쓰는 진법입니다. 

   표현 가능한 수가 0부터 9까지 총 10개라서 10진수라고 부릅니다.

 

2) 2진수

   컴퓨터는 2진수로 이루어져 있습니다.

   표현 가능한 수가 0과 1밖에 없어서 2진수라고 부릅니다.

 

3) 8진수

   표현 가능한 수가 0부터 7까지 총 8개라서 8진수라고 부릅니다.

 

4) 16진수

   표현 가능한 수가 0부터 9까지 그리고 A부터 F까지 총 16개라서 16진수라고 부릅니다.

 

      10진수 -->   0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15

      16진수 -->   0  1  2  3  4  5  6  7  8  9   A   B    C   D   E    F

 

#진법 변환

1) 2진수 <--> 10진수

    8비트인 2진수를 기준으로 자리마다 값을 매기면

 

    256  128  64  32  16  8  4  2  1

 

    이렇게 됩니다. 자릿값은 2의 0승, 2의 1승, 2의 2승 이렇게 계산이 되어서 값이 매겨집니다.

    그리고 2진수로 표현했을 때 1이 존재하는 자리에 해당하는

    자릿값을 모두 더하면 10진수가 됩니다. 

 

    예를 들어 0101을 10진수로 나타낼 때

   

    256  128  64  32   16  8  4  2  1

      0     0    0    0    0   0  1  0  1 

   

    이렇게 해서 1이 존재하는 자리에 해당하는 자릿값은 1과 4입니다.

    이 값들을 다 더하면 5가 되고 0101을 10진수로 나타낼 때 5가 되는 겁니다.

 

 

2) 8진수 <--> 10진수

   8진수를 10진수로 변환하는 방법은 2진수를 10진수로 변환하는 방법과 비슷합니다

   차이점은 자릿값이 계산되는 방식이 2의 n승이 아니라 8의 n승이라는 것입니다.  

   그리고 더할 때 자릿값과 자리의 수를 곱해서 더합니다.

 

   8진수로 표현된 24를 10진수로 바꾸는 것으로 예를 들어보겠습니다.

  

   일의 자리 -> 8의 0승 -> 1

   십의 자리 -> 8의 1승 -> 8  이렇게 되어서

    

    (2 X 8) + (4 X 1) = 20

    따라서 8진수 24를 10진수로 표현을 하면 20이 됩니다.

 

    2진수에서도 자릿값과 자리의 수를 곱해서 더하는데

    자리의 수가 0 아니면 1이라서 1이 존재하는 자리의 자릿값만 더해도 문제가 없는 것입니다.

    0을 곱하면 0이고 1을 곱하면 해당 자리의 자릿값인데 굳이 자리의 수를 곱할 이유가 없다는 거죠.

    

   8진수를 2진수로 표현하려면

      - 8진수를 자리별로 끊습니다.

      - 자리의 수를 3비트인 2진수로 표현합니다.

      - 2진수를 연결합니다

      

         3비트로 표현하는 이유는 2진수 111을 10진수로 표현하면 7입니다,

         즉, 8진수는 표현 가능한 수가 최대 7이기 때문에 3비트로 표현합니다. 

         8진수는 0~7까지 표현할 수 있다고 앞에서 언급하였습니다.

 

         8진수 24를 2진수로 바꾸는 것을 과정으로 설명드리면

         - 2 / 4로 끊고

         - 010 / 100으로 표현하고

         - 010100으로 연결합니다. 

 

          이렇게 8진수를 2진수로 바꿀 수 있습니다.

          

         여기서 10진수로 바꾸려면 2진수를 10진수로 바꾸는 법을 참고해서 계산하면 됩니다.

         

2) 16진수 <--> 10진수

16진수를 10진수로 바꾸는 것은 8진수를 10진수로 바꾸는 것과 정말 비슷합니다.

8진수를 10진수로 바꾸는 과정에서 자릿값 계산을 16의 n승으로 해서 값을 매기고

자릿값과 자리의 수를 곱해서 더합니다.

 

예를 들어 16진수 1F는 10진수로 표현하면

(1 X 16) + (15 X 1) = 31이 됩니다. 

               15 = F 

 

      10진수 -->   0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15

      16진수 -->   0  1  2  3  4  5  6  7  8  9   A   B    C   D   E    F

 

빨간색으로 표시한 부분을 주의 깊게 봐야 합니다.

16진수는 10진수 10부터 15까지 알파벳으로 표현이 되는 것을 반드시 인지하고 있어야 합니다.

 

마지막으로 16진수를 2진수로 표현하려면 

      - 16진수를 자리별로 끊습니다.

      - 자리의 수를 4비트인 2진수로 표현합니다.

      - 2진수를 연결합니다

 

방법은 8진수를 2진수로 표현하는 것과 거의 일치합니다.

다른 점은 3비트인 2진수로 표현하지 않고 4비트인 2진수로 표현한다는 겁니다.

 

이유는 2진수 1111을 10진수로 표현하면 15입니다.

즉, 16진수는 표현 가능한 수가 최대 15(=F)이기 때문에 4비트로 표현합니다.

16진수는 0~15(10부터 15까진 A~F)까지 표현할 수 있다고 앞에서 언급하였습니다.

 

         16진수 1F를 2진수로 바꾸는 것을 과정으로 설명드리면

         - 1 / F(=15) 로 끊고

         - 0001 / 1111 으로 표현하고

         - 00011111 으로 연결합니다. 

 

          이렇게 16진수를 2진수로 바꿀 수 있습니다.

          

         여기서 10진수로 바꾸려면 2진수를 10진수로 바꾸는 법을 참고해서 계산하면 됩니다.

 

설명은 여기까지 입니다.

지금까지 2진수, 8진수, 10진수, 16진수가 무엇인지 알아보고

진법 변환은 어떻게 하는 것인지 알아보았습니다. 

 

감사합니다