본문으로 건너뛰기
yceffort
PostsSeriesTagsAbout🧪 Research
EN

Tweaks

theme
accent palette
film grain
minimal mode
BACK TO INDEX
◆ ESSAY
--min
--year
KOoriginal

mailMail icongithubtwitter
yceffort
•
© 2026
•
https://yceffort.kr
BACK TO INDEX
◆ ESSAY

프로그래머 기초 수학 2-2 - 기수법

avatar
yceffort
2020-07-24 · 3분
3min
2020year
KOoriginal
algorithm

기수법

우리가 흔히 사용하는 숫자 1234는 다음과 같이 표현할 수 있다.

1234 = ( 1 × 10 3 ) + ( 2 × 10 2 ) + ( 3 × 10 1 ) + ( 3 × 10 0 ) 1234 = (1 \times 10^3) + (2 \times 10^2) + (3 \times 10^1) + (3 \times 10^0)

여기 나오는 10처럼 그 거듭 제곱으로 자리의 값을 취하는 숫자를 밑 이라고 하고, 체계의 이름은 진법이라는 말을 붙인다. 즉 저 숫자는 10진법으로 나타낸 수다. 어떤 진법을 썼는지 나타내기 위해서는 밑에 작게 표현한다

1234 ( 10 ) 1234 10 1234_{(10)} 1234_{10}

이와 비슷하게, 0과 1로만 표현되어 있는 숫자는 2진법이라고 한다. 2진법은 논리적으로 참과 거짓에 대응 되며, 이는 전기 신호로 1, 0을 표현하는 컴퓨터의 기본체계를 이룬다.

1101 2 = ( 1 × 2 3 ) + ( 1 × 2 2 ) + ( 1 × 2 1 ) + ( 1 × 2 0 ) = ( 8 + 4 + 0 + 1 ) 13 10 1101_{2} = (1 \times 2^3) + (1 \times 2^2) + (1 \times 2^1) + (1 \times 2^0) = ( 8 + 4 + 0 + 1) 13_{10}

이와 비슷하게, 16비트로 나타낼수 있는 수는 2 16 − 1 = 65536 2^{16} - 1 = 65536이다.

2진법과 더불어 컴퓨터 과학분야에서 많이 쓰이는 것이 16진법이다. 16진법은 0~9와 더불어 A, B, C, D, E, F 를 사용하여 숫자를 표현한다. 각각 10, 11, 12, 13, 14, 15를 나타낸다.

C A F E 16 = ( 12 × 16 3 ) + ( 10 × 16 2 ) + ( 15 × 16 1 ) + ( 14 × 16 0 ) = 51966 10 CAFE_{16} = (12 \times 16^3) + (10 \times 16^2) + (15 \times 16^1) + (14 \times 16^0) = 51966_{10}

근데 왜 하필 16진수가 널리 쓰이게 된것일까? 그것은 2진수를 인간이 좀더 보기 쉬운 형태 ( 2 4 2^4)로 바꾼 것이 기 때문이다. 이는 정확하게 4비트를 나타낸다.

2진수00000001001000110100010101100111
16진수01234567
2진수10001001101010111100110111101111
16진수89ABCDEF

0과 1을 나열한 것은 바로 알아보기 쉽지 않지만, 이를 네개씩 묶어서 표현할 수 있다.

1011   1110   1110   1111 2 B E E F 16 1011\space1110\space1110\space1111_{2} BEEF_{16}

거꾸로 10진수를 다른 진법으로 나타내기 위해서는, 해당 10진법 숫자를 변환을 원하는 밑으로 나누어서 표현하면 된다.

코드 구현

var dec = 123
var hex = dec.toString(16) // 변환을 원하는 밑을 넣는다.
var bin = dec.toString(2)

var hex = '7b'
var dec = parseInt(hex, 16) // 해당숫자의 밑을 넣는다.
var bin = dec.toString(2)

관련 글

  • #javascript#algorithm

    자바스크립트로 메모이제이션 구현하기

    까먹지 않게 기억해두기

    2020-11-23·1분
  • #algorithm

    프로그래머 기초 수학 2-3 - 유리수, 무리수, 실수

    유리수, 무리수, 실수

    2020-07-29·5분
  • #algorithm#mathematics

    프로그래머 기초 수학 2-1 - 정수

    정수

    2020-07-23·4분
  • #algorithm

    프로그래머 기초 수학 1-2 - 집합

    집합

    2020-07-17·5분

새 글을 놓치고 싶지 않으시다면 RSS로 구독해 주세요.

RSS 구독 →

yceffort — 프론트엔드 엔지니어입니다.

← Back to the blogIssue on GitHub →