Numeral System

기수법Numeral System

기수법이란 수를 표현하는 방법을 의미한다. 밑수를 정하면 밑수의 개수만큼의 숫자를 사용해 수를 나타낼 수 있다.

10진수Decimal

10진수는 수를 표현하는 데 숫자를 총 열 개 사용한다. 10을 밑수로 0부터 9까지 총 열 개의 숫자로 모든 수를 표현한다

  • 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

2진수Hexadecimal

2진수는 수를 표현하는데 0과 1만을 사용햔다.

  • 0, 1

16진수Binary

16진수는 수를 표현하는데 0부터 9와 a부터 f까지 총 16가지의 숫자를 사용한다.

  • 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f

10진수를 2진수로

10진수를 2진수로 바꾸기 위해선 다음과 같은 절차를 거친다. 예시로 25를 2진수로 표현하는 방법을 알아보자.

  1. 2의 거듭제곱의 합으로 쪼갠다 \(25 = 16 + 8 + 1 = 2^4 + 2^3 + 2^0\)
  2. $2^2, 2^1$ 처럼 중간에 빠진 지수는 0을 이용해 표현한다 \(25 = 1\times2^4 + 1\times2^3 + 0\times2^2 + 0\times2^1 + 1\times2^0\)
  3. 2의 거듭제곱 수를 제외하고 앞의 수 1과 0만 모아 나열한다. \(1\times2^4 + 1\times2^3 + 0\times2^2 + 0\times2^1 + 1\times2^0 = 11001\) 해당 변환은 bin()함수를 활용해 간단하게 계산 할 수 있다.
    >>>bin(25)
    '0b11001'
    

    bin() 함수는 정수를 2진수로 표현하는 함수이다. 결과 값 앞의 _0b는 2진수_를 의미하는 binary이다. _16진수는 0x(hexadecimal)_을 의미한다

16진수를 2진수로

16진수 한 자리는 2진수 네 자릿수까지 표현할 수 있다. 0에서 9까지의 2진수 변환은 10진수의 변환과 같으므로 a에서 f까지를 2진수로 변환하면 다음과 같다. \(\begin{matrix} a = 1010\\ b = 1011\\ c = 1100\\ d = 1101\\ e = 1110\\ f = 1111 \end{matrix}\) hex()함수를 활용하여 간단하게 16진수를 변환할 수도 있다.

>>>hex(0b00101101)
'0x2d'



Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • [CS231n]Exercise1.5 - Features
  • [CS231n]Exercise1.4 - Two Layer Net
  • [CS231n]Exercise1.3 - Softmax
  • [CS231n]Exercise1.2 - Support Vector Machine