본문으로 건너뛰기
CalcMax

10진수-2진수 변환기

계산 결과

10001

2진수

자릿값
16 + 1

10진수 정수를 2진수로 바꾸는 변환기입니다. 17처럼 정수를 넣으면 2진수 값과 함께, 그 값이 어떻게 나왔는지 자릿값의 합으로도 보여 줍니다. 방법은 2로 나누기를 반복하는 것입니다. 수를 2로 나눠 몫과 나머지를 적고, 그 몫을 다시 2로 나눕니다. 몫이 0이 될 때까지 이 과정을 되풀이한 뒤, 나온 나머지를 아래에서 위로 이어 붙이면 2진수가 됩니다. 17이라면 17 ÷ 2 = 8 나머지 1, 8 ÷ 2 = 4 나머지 0, 4 ÷ 2 = 2 나머지 0, 2 ÷ 2 = 1 나머지 0, 1 ÷ 2 = 0 나머지 1이 되고, 나머지를 거꾸로 읽어 10001이 됩니다. 순서를 거꾸로 읽는 것이 이 방법의 유일한 함정입니다. 위에서 아래로 읽으면 10001이 아니라 다른 수가 나오는데, 그 값도 그럴듯해 보여서 틀린 줄 모르기 쉽습니다. 마지막 나눗셈의 몫이 0이 되는 순간까지 내려가야 하며, 몫이 1일 때 멈추면 자리가 하나 모자랍니다. 결과를 검산하는 길은 두 가지입니다. 자릿값 줄의 항을 모두 더하면 원래 넣은 수가 되어야 하고, 2진수를 다시 10진수로 읽어도 같은 값이 나와야 합니다. 앞자리에 0을 붙여 넣어도 값은 그대로이므로 00017은 17과 같은 수로 처리됩니다.

17을 2로 나눠 몫이 0이 될 때까지 한 단계씩 내려간 표

회차나눗셈몫나머지
117 ÷ 281
28 ÷ 240
34 ÷ 220
42 ÷ 210
51 ÷ 201

17을 2로 나누는 과정을 회차별로 적은 표입니다. 각 줄의 몫이 다음 줄의 나눗셈에 들어가고, 나머지는 0 또는 1로 남습니다. 표를 위에서 아래로 읽으면 나눗셈이 어떻게 진행되는지 알 수 있고, 오른쪽 나머지 열만 아래에서 위로 읽으면 그것이 곧 2진수 10001입니다. 마지막 줄의 몫이 0인 것을 확인하는 것이 중요합니다. 여기서 멈추지 않으면 자리가 하나 모자라게 됩니다. 마지막 회차의 나머지가 2진수의 가장 왼쪽 자리가 되고 첫 회차의 나머지가 가장 오른쪽 자리가 되므로, 읽는 방향을 바꾸면 값이 달라집니다. 표의 수치는 페이지를 만들 때마다 다시 계산됩니다.

공식

17 ÷ 2 = 8 r 1 → 8 ÷ 2 = 4 r 0 → 4 ÷ 2 = 2 r 0 → 2 ÷ 2 = 1 r 0 → 1 ÷ 2 = 0 r 1 ⇒ 17 = 10001 = 16 + 1

17
변환할 10진수 정수입니다. 소수점이 있는 값은 받지 않으며, 음수는 앞에 빼기 부호를 붙여 적습니다. 맨 앞의 0은 값을 바꾸지 않으므로 붙여도 되고 지워도 됩니다
÷ 2
되풀이하는 나눗셈입니다. 2진수는 자리마다 값이 두 배가 되므로, 값을 두 배씩 되돌려 가며 각 자리에 무엇이 들어가는지를 알아냅니다. 나누는 수는 언제나 2이고 바뀌지 않습니다
몫
나눈 결과에서 소수점 이하를 버린 값입니다. 이 몫이 다음 회차의 입력이 되며, 몫이 0이 되면 과정이 끝납니다. 몫이 1일 때 멈추면 마지막 자리를 빠뜨리게 되므로, 0이 될 때까지 내려가야 합니다
나머지
2로 나누고 남은 값이며 0 또는 1입니다. 이것이 2진수의 한 자리가 됩니다. 나머지는 나중에 거꾸로 읽어야 하므로, 표에 적어 두고 아래에서 위로 이어 붙이는 것이 이 방법의 핵심입니다
⇒ 10001
나머지를 아래에서 위로 이어 붙인 결과입니다. 마지막 회차의 나머지가 가장 왼쪽 자리가 되고 첫 회차의 나머지가 가장 오른쪽 자리가 됩니다. 위에서 아래로 읽으면 자리가 뒤집혀 다른 값이 되므로 방향을 반드시 확인해야 합니다
16 + 1
결과를 자릿값의 합으로 다시 적은 것입니다. 10001에서 1인 자리는 16과 1뿐이므로 합이 17이 되어 원래 수로 돌아옵니다. 나눗셈을 거꾸로 되짚는 대신 이 합을 더해 보는 것이 가장 빠른 검산입니다
53비트
이 페이지가 정확히 처리하는 마지막 자리입니다. 배정밀도 부동소수점의 유효 숫자가 53비트이므로 1이 53개 늘어선 2진수, 곧 10진수로 9,007,199,254,740,991까지가 정확히 변환되는 값입니다

컴퓨터가 다루는 값을 사람이 지정한 형태로 적어 넣어야 할 때 쓰는 페이지입니다. 비트 마스크를 만들거나, 어떤 수가 2의 거듭제곱 몇 개의 합인지 확인하거나, 10진수로 적힌 설정값을 2진수로 옮겨 적을 때 필요합니다. 이 페이지가 나눗셈 과정을 자릿값의 합으로 다시 보여 주는 이유는, 나눗셈만 있으면 결과가 맞는지 확인할 방법이 없기 때문입니다. 자릿값의 항을 더해 원래 수가 되는지 보거나, 반대로 2진수를 10진수로 읽어 같은 값이 나오는지 보면 됩니다. 손으로 검산할 때 특히 유용한 것은 10진수 쪽입니다. 17이 16 + 1이라는 것을 알면 2진수가 10001이라는 것도, 16의 자리와 1의 자리만 1이라는 것도 동시에 확인됩니다. 255처럼 2의 거듭제곱에서 1을 뺀 수는 모든 자리가 1이 되므로, 자릿수가 여덟 개면 11111111이 곧 255입니다. 이런 경계값을 몇 개 외워 두면 결과가 그럴듯한지 빠르게 판단할 수 있습니다.

계산 예시

  1. 17을 2진수로

    1. 17 ÷ 2 = 8, 나머지 1
    2. 8 ÷ 2 = 4, 나머지 0
    3. 4 ÷ 2 = 2, 나머지 0
    4. 2 ÷ 2 = 1, 나머지 0
    5. 1 ÷ 2 = 0, 나머지 1 — 몫이 0이 되었으므로 여기서 멈춥니다
    6. 나머지를 아래에서 위로 읽으면 10001
    7. 자릿값으로 검산: 16 + 1 = 17

    페이지가 처음 열릴 때 들어 있는 입력입니다. 나머지가 다섯 개 나오고 그중 1이 두 번 나오는데, 이것이 2진수의 1인 자리 두 개와 같습니다. 몫이 1일 때 멈추면 마지막 줄을 빠뜨려 0001이 되어 값이 1이 되므로, 몫이 0이 되는 줄까지 반드시 내려가야 합니다. 자릿값 줄이 16 + 1인 것은 1인 자리가 16과 1 두 곳뿐이라는 뜻입니다.

  2. 255를 2진수로

    1. 255 ÷ 2 = 127, 나머지 1
    2. 127 ÷ 2 = 63, 나머지 1 … 나머지가 계속 1입니다
    3. 몫이 0이 될 때까지 여덟 번 내려갑니다
    4. 나머지를 아래에서 위로 읽으면 11111111
    5. 자릿값으로 검산: 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255

    2의 8제곱에서 1을 뺀 값이라 모든 자리가 1이 되는 경계값입니다. 나머지가 한 번도 0이 되지 않으므로 자릿값 줄에 여덟 항이 모두 나옵니다. 이런 수는 한 바이트로 표현할 수 있는 가장 큰 값이라 자주 등장하며, 자릿수가 n개면 2의 n제곱에서 1을 뺀 값이 된다는 규칙도 여기서 확인됩니다.

  3. 16을 2진수로

    1. 16 ÷ 2 = 8, 나머지 0
    2. 8 ÷ 2 = 4, 나머지 0
    3. 4 ÷ 2 = 2, 나머지 0
    4. 2 ÷ 2 = 1, 나머지 0
    5. 1 ÷ 2 = 0, 나머지 1
    6. 나머지를 아래에서 위로 읽으면 10000
    7. 자릿값으로 검산: 16

    2의 거듭제곱 자체인 경우입니다. 나머지가 마지막 한 번만 1이고 그 앞은 모두 0이라, 결과가 1 하나와 0 네 개로 나옵니다. 자릿값 줄에 항이 하나뿐인 것도 이 때문이며, 어떤 수가 2의 거듭제곱인지 판단하는 가장 쉬운 방법이 바로 이것입니다. 이런 수는 2진수로 적었을 때 1이 한 자리만 켜져 있습니다.

  4. 앞에 0이 붙은 00017

    1. 맨 앞의 0은 값을 바꾸지 않으므로 17과 같은 수입니다
    2. 나눗셈 과정도 결과도 17을 넣었을 때와 같습니다
    3. 자릿값으로 검산: 16 + 1 = 17

    자릿수를 맞추려고 앞에 0을 붙여 넣은 경우입니다. 10진수에서는 앞의 0이 값을 바꾸지 않으므로 결과가 17과 완전히 같게 나옵니다. 고정된 폭으로 값을 적는 환경에서 온 입력을 그대로 붙여 넣어도 되며, 지우고 다시 넣을 필요가 없습니다.

한계

10진수 정수 하나만 받습니다. 소수점이 있는 값은 받지 않으며, 정수만 다룹니다. 맨 앞의 0은 값을 바꾸지 않으므로 그대로 두어도 되고 지워도 됩니다. 값의 범위는 9,007,199,254,740,991까지이며, 이는 2진수로 1이 53개 늘어선 수에 해당합니다. 배정밀도 부동소수점의 유효 숫자가 53비트라 그보다 큰 수는 정확히 변환할 수 없으므로 입력 단계에서 거부합니다. 나눗셈은 몫이 0이 될 때까지 반복하며, 나머지는 아래에서 위로 읽어 이어 붙입니다. 이 방향을 반대로 잡으면 값이 달라지고, 그렇게 나온 수도 그럴듯해 보이므로 결과가 의심스러우면 자릿값 줄의 합부터 확인하는 편이 좋습니다. 결과로 나오는 2진수와 자릿값 줄에는 쉼표가 들어가지 않습니다. 2진수를 네 자리씩 끊어 읽고 싶다면 10진수-16진수 변환기를 거쳐 16진수로 보는 편이 읽기 쉽습니다. 이 페이지에는 단위가 없고, 나눗셈 과정 자체는 결과에 남지 않습니다. 어느 회차에서 어떤 나머지가 나왔는지가 필요하면 참고표의 사다리 모양 표를 보면 됩니다.

자주 묻는 질문

나머지를 왜 거꾸로 읽어야 하나요?
2로 나누기를 되풀이하면 가장 먼저 나온 나머지가 가장 낮은 자리, 곧 2진수의 오른쪽 끝 자리가 되기 때문입니다. 마지막에 나온 나머지가 가장 왼쪽 자리입니다. 위에서 아래로 읽으면 자리가 뒤집혀 다른 값이 되는데, 그렇게 나온 수도 그럴듯해 보이므로 자릿값 줄의 합으로 검산하는 편이 안전합니다.
몫이 1일 때 멈추면 안 되나요?
안 됩니다. 몫이 0이 되는 줄까지 내려가야 마지막 자리가 나옵니다. 몫이 1일 때 멈추면 그 몫이 나타내는 자리가 통째로 빠져 값이 달라집니다. 17을 예로 들면 1 ÷ 2 = 0 나머지 1인 줄까지 해야 10001이 되고, 그 전에 멈추면 자리가 하나 모자랍니다.
10진수 2진수 변환 결과가 맞는지 어떻게 확인하나요?
두 가지 길이 있습니다. 자릿값 줄의 항을 모두 더해 원래 넣은 수가 되는지 보거나, 나온 2진수를 10진수로 다시 읽어 같은 값이 나오는지 보면 됩니다. 17이라면 16 + 1 = 17이고, 10001을 읽어도 16 + 1 = 17입니다. 두 방법이 모두 같은 값으로 돌아오면 계산이 맞습니다.
어떤 수가 2의 거듭제곱인지 알 수 있나요?
결과를 보면 바로 알 수 있습니다. 2의 거듭제곱은 2진수로 적었을 때 1이 한 자리만 켜지고 나머지가 모두 0이 됩니다. 16은 10000, 32는 100000처럼 1 뒤에 0이 늘어섭니다. 자릿값 줄에 항이 하나뿐인 것도 같은 뜻입니다.
소수점이 있는 값도 변환할 수 있나요?
이 페이지는 정수만 받습니다. 소수점이 있는 값을 넣으면 변환하지 않고 입력 칸을 빨갛게 표시합니다. 소수 부분을 2진수로 바꾸려면 2를 곱해 가며 정수 부분을 떼어내는 별도의 과정이 필요하며, 그 결과는 유한한 자릿수로 끝나지 않을 수 있습니다.
수식의 나머지 r 표기는 무엇인가요?
나눗셈의 몫과 나머지를 한 줄에 적는 표기입니다. 17 ÷ 2 = 8 r 1은 몫이 8이고 나머지가 1이라는 뜻입니다. 참고표의 사다리 모양 표가 이 표기를 회차별로 늘어놓은 것이며, 거기 적힌 나머지를 아래에서 위로 읽은 것이 곧 2진수입니다.

참고 문헌

관련 계산기