Skip to content

Latest commit

 

History

History
60 lines (36 loc) · 2.4 KB

File metadata and controls

60 lines (36 loc) · 2.4 KB

NumberSystem

컴퓨터에서 사용하는 수 체계에 대해 정리합니다.

크게 2진수, 8진수, 10진수, 16진수로 나눌 수 있습니다.

각 자리수 변환

2진수에서 10진수로 변환

2진수를 10진수로 변환하는 방법 각 자리의 숫자에 해당 자리의 2의 제곱을 곱한 후 더합니다.

$$ (1011)_2 = 1 \times 2^3 + 0 \times 2^2 + 1 \times 2^1 + 1 \times 2^0 = 11 $$

10진수에서 2진수로 변환

십진수를 이진수로 변환하는 방법은 나눗셈을 사용하여 십진수를 2로 나누고, 나머지를 기록합니다. 몫이 0이 될 때까지 반복한 후, 나머지를 역순으로 나열하면 이진수가 됩니다.

$$ 11 \div 2 = 5 ... 1 $$ $$ 5 \div 2 = 2 ... 1 $$ $$ 2 \div 2 = 1 ... 0 $$ $$ 1 \div 2 = 0 ... 1 $$ $$ (1011)_2 $$

2진수를 8진수로 변환

이진수를 팔진수로 변환하려면 이진수를 3자리씩 그룹으로 나눕니다. 각 그룹을 십진수로 변환한 후 8진수로 나타냅니다.

$$ (1011011)_2 = (001)(011)(011)_2 = (1)(3)(3)_8 = (133)_8 $$

8진수를 2진수로 변환

팔진수를 이진수로 변환하려면 각 자리의 숫자를 3자리의 이진수로 변환합니다.

$$ (133)_8 = (1)(3)(3)_8 = (001)(011)(011)_2 = (1011011)_2 $$

2진수를 16진수로 변환

이진수를 십육진수로 변환하려면 이진수를 4자리씩 그룹으로 나눕니다. 각 그룹을 십진수로 변환한 후 16진수로 나타냅니다.

$$ (1011011)2 = (0010)(1101)(0110)2 = (2)(13)(6){16} = (26D){16} $$

16진수를 2진수로 변환

십육진수를 이진수로 변환하려면 각 자리의 숫자를 4자리의 이진수로 변환합니다.

$$ (26D){16} = (2)(6)(D){16} = (0010)(0110)(1101)_2 = (001001101101)_2 $$

실제로 사용되는 경우

컴퓨터에서는 대부분 2진수를 사용하지만, 각 자리수의 변환을 알아야 하는 이유는 다음과 같습니다.

  • 메모리 주소 및 데이터를 표현할 때 사용합니다.
    • 하지만 읽고 쓰기 어려운 2진수 대신에 간결하게 표현하기 위해 16진수를 사용합니다.
    • 실제 메모리 값이 0x61fe18와 같이 표현되는 이유
    • 여기서 0x는 16진수를 의미합니다.
      • 2진수는 0b, 8진수는 0으로 표현합니다.
    • 0x61fe180110 0001 1111 1110 0001 1000로 표현됩니다.
  • 컬러코드
  • IP주소는 내부적으로 2진수로 표현됩니다.