T

Text Machine

강력한 텍스트 도구를 브라우저에서

십진수 ↔ 이진수 변환기

십진수를 입력하여 이진수로 변환하거나, 이진수를 입력하여 십진수로 변환하세요. 결과는 다른 상자에 표시됩니다.

십진수 ↔ 이진수 변환기
이진수 이해하기

이진법은 2진법 숫자 체계로, 0과 1 두 개의 숫자만 사용합니다. 이진수의 각 자리는 가장 오른쪽에서부터 2의 0제곱(즉, 1)으로 시작하는 2의 거듭제곱을 나타냅니다.

예를 들어, 이진수 1101은 다음과 같이 계산됩니다.

1 × 2^3 + 1 × 2^2 + 0 × 2^1 + 1 × 2^0 = 8 + 4 + 0 + 1 = 13 (십진수).

십진수 ↔ 이진수 변환기 사용 방법

  1. 1

    숫자 입력

    Decimal Value 입력란에 10진수를, 또는 Binary Value 입력란에 2진수를 입력하세요.

  2. 2

    변환 결과 확인

    입력하는 즉시 일치하는 결과가 버튼을 누를 필요 없이 다른 입력란에 표시됩니다.

  3. 3

    변환 과정 검토

    Conversion Steps 섹션을 확인해 2진 결과를 만드는 2로 나누기 과정을 따라가 보세요.

  4. 4

    결과 복사

    Copy Decimal 또는 Copy Binary로 값을 가져오거나, Swap으로 변환 방향을 바꾸세요.

십진수를 이진수로 변환하기

10진법에서 2진법으로

십진법은 사람들이 매일 쓰는, 0부터 9까지 열 개의 숫자로 이루어진 10진법 숫자 체계입니다. 이진법은 0과 1 단 두 개의 숫자로 이루어진 2진법 체계로, 컴퓨터가 내부적으로 사용하는데 회로가 안정된 두 상태를 갖기 때문입니다. 십진수를 이진수로 변환하는 것은 같은 양을 기계가 저장하는 형태로 표현하는 일입니다. 값은 그대로이고 표기만 달라집니다. 십진수 13과 이진수 1101은 같은 양입니다.

손으로 변환하는 믿을 만한 방법은 두 가지입니다. 이진 자릿수를 아래에서 위로 쌓는 2로 반복해서 나누기와, 위에서 아래로 쌓는 2의 거듭제곱 빼기입니다. 둘 다 같은 답을 줍니다. 이 도구는 나누기 방법을 단계별로 보여 주므로, 그저 최종 비트 문자열만 보는 것이 아니라 결과가 어떻게 만들어지는지를 정확히 따라갈 수 있습니다.

반복 나누기 방법

나누기 방법이 통하는 까닭은 2로 나눌 때마다 이진 자릿수 하나가 벗겨져 나오기 때문입니다. 수를 2로 나누고, 나머지(항상 0이나 1)를 적은 다음, 몫을 다시 2로 나누고 그 나머지를 기록하며, 몫이 0이 될 때까지 계속합니다. 그 나머지들이 이진 자릿수인데, 가장 낮은 자리부터 나오므로 마지막 단계는 그것들을 거꾸로, 즉 마지막 나머지에서 첫 나머지로 읽는 것입니다.

그 논리는 자릿값의 거울상입니다. 2로 나누는 것은 그 수에 2가 몇 개 들어가는지를 묻고, 나머지는 1의 자리 비트가 켜져 있는지를 알려 줍니다. 다음 나누기는 모든 것을 한 이진 자리 아래로 옮겨 2의 자리 비트를 묻고, 이런 식으로 이어집니다. 모든 단계가 정확히 한 비트를 만들어 내므로, 어떤 수든 그 이진 자릿수만큼의 나누기가 필요합니다.

예제 풀이: 13을 이진수로

십진수 13을 반복 나누기로 변환해 봅시다. 13을 2로 나누면 몫 6에 나머지 1입니다. 6을 2로 나누면 3에 나머지 0입니다. 3을 2로 나누면 1에 나머지 1입니다. 1을 2로 나누면 0에 나머지 1입니다. 이제 몫이 0이므로 멈춥니다.

나온 순서대로 나머지를 모으면 1, 0, 1, 1이고, 이를 뒤집어 가장 높은 자리부터 읽으면 1101이 됩니다. 그러므로 십진수 13은 이진수 1101입니다. 자릿값으로 확인할 수 있습니다. 1101은 8 + 4 + 0 + 1이며, 이는 다시 정확히 13으로 합산됩니다. 이 도구의 변환 단계 패널이 이 나누기들을 하나하나 펼쳐 보여 줍니다.

2의 거듭제곱 방법

두 번째 접근법은 자릿값을 이용해 위에서 아래로 답을 쌓습니다. 자신의 수를 넘지 않는 2의 거듭제곱들, 즉 1, 2, 4, 8, 16, 32, 64, 128 등을 나열한 다음, 그 안에 들어가는 가장 큰 것을 찾아 빼고, 그 나머지로 반복합니다. 사용한 거듭제곱마다 그 자리에 1을 놓고, 건너뛴 거듭제곱마다 0을 놓습니다.

13의 경우, 들어가는 가장 큰 2의 거듭제곱은 8이고 5가 남습니다. 5에 들어가는 가장 큰 거듭제곱은 4이고 1이 남습니다. 4로는 더 나눌 수 없고, 2는 너무 크며, 1이 딱 맞아 0이 남습니다. 그러므로 8, 4, 1 자리를 사용하고 2 자리를 건너뛰었으니 1101이 되는데, 이는 나누기 방법과 같은 결과입니다. 2의 거듭제곱을 외워 두면 이 접근법이 더 빠르다고 느끼는 사람이 많습니다.

채우기, 앞자리 0, 그리고 바이트 폭

수의 맨 이진 형태에는, 십진수 13을 0013으로 적지 않는 것과 마찬가지로 앞자리 0이 없습니다. 하지만 컴퓨터는 수를 고정 폭의 칸에 저장하므로, 같은 값이 흔히 표준 크기에 맞춰 왼쪽에 채워집니다. 1바이트로 13은 00001101로 적히는데, 의미 있는 비트 1101에 여덟 자리를 채우려고 앞에 0 네 개를 둔 것입니다. 그 0들은 값을 바꾸지 않고 폭만 채웁니다.

폭을 고르는 것이 중요한 까닭은 그것이 들어갈 수 있는 값의 범위를 정하기 때문입니다. 8비트는 0부터 255까지, 16비트는 0부터 65535까지를 담는 식입니다. 여기서 변환하면 자연스러운 이진 표현을 얻으며, 그것을 자신의 맥락이 필요로 하는 어떤 폭으로든 머릿속에서 채워 넣을 수 있습니다. 이 도구는 또한 안전한 정수 정밀도를 초과할 만큼 큰 수를 막아, 부정확한 결과를 돌려주는 대신 거부합니다.

음수와 소수

이 변환기는 가장 자주 마주치는 경우인 음이 아닌 정수를 다룹니다. 다만 더 까다로운 두 경우가 다른 곳에서 어떻게 처리되는지 알아 두면 좋습니다. 컴퓨터는 글자 그대로의 마이너스 기호를 저장하지 않습니다. 대신 2의 보수라는 방식으로 음의 정수를 표현하는데, 여기서는 최상위 비트가 부호를 나타내고 음의 값은 고정 폭 안에서 비트를 모두 반전한 뒤 1을 더해 인코딩됩니다.

소수는 또 다른 방식을 씁니다. 이진 소수점 뒤의 부분은 2의 음의 거듭제곱, 즉 2분의 1, 4분의 1, 8분의 1 등으로 만들어지며, 0.1 같은 대부분의 십진 소수는 이진으로 정확히 적을 수 없는데, 이것이 부동소수점 산술에서 가끔 보이는 작은 반올림 오차의 근본 원인입니다. 일상적인 정수 변환에는 위의 나누기와 2의 거듭제곱 방법이면 충분합니다.

어디에 유용한가

십진수-이진수 변환은 컴퓨터 과학 교육의 핵심 기술이자 흔한 시험 문제인데, 사람의 수와 기계의 저장 사이의 관계를 구체적으로 만들어 주기 때문입니다. 일단 13을 손으로 1101로 바꿀 수 있게 되면, 데이터 크기, 정수 오버플로, 비트 조작 같은 개념을 훨씬 따라가기 쉬워집니다.

실용적이기도 합니다. 프로그래머는 비트 플래그를 설정하고, 비트 마스크를 만들고, 저수준 데이터를 따져 보기 위해 십진 값을 이진수로 변환합니다. 네트워크 엔지니어는 서브넷 경계를 계산하려고 십진 IP 옥텟을 이진수로 바꿉니다. 디지털 전자공학과 마이크로컨트롤러 작업은 사람들이 지정하는 십진수와 하드웨어가 실제로 사용하는 이진 패턴 사이를 끊임없이 오가며, 빠른 단계별 변환기가 그 변환을 정확하게 유지해 줍니다.

자주 묻는 질문

양방향으로 변환하나요?
네. 10진수를 입력하면 2진수를, 2진수를 입력하면 10진수를 얻습니다. 결과가 반대편 입력란에 자동으로 채워집니다.
변환이 어떻게 계산되는지 볼 수 있나요?
네. Conversion Steps 패널이 각 2로 나누기 연산을 몫과 나머지와 함께 보여 주므로, 답뿐 아니라 방법까지 배울 수 있습니다.
유효한 2진 입력은 무엇인가요?
2진 입력란에는 0과 1만 허용됩니다. 다른 문자를 입력하면 입력 오류 경고가 표시되므로 항상 실제 2진수를 변환하게 됩니다.
숫자 크기에 제한이 있나요?
안전한 정수 정밀도를 초과하는 매우 큰 10진수는 Number Too Large 메시지와 함께 거부되어 모든 변환의 정확성을 유지합니다.
내 데이터가 비공개로 유지되나요?
네. 모든 변환이 브라우저 안에서 로컬로 실행되므로 입력한 숫자가 업로드되지 않으며, 가입 없이 무료로 사용할 수 있습니다.

관련 도구

이런 편리한 도구도 함께 사용해 보세요

이진수 ↔ 십진수 변환기

유닉스 타임스탬프 변환기

JSON ↔ CSV 변환기

JSON ↔ YAML 변환기

CSV를 JSON으로 변환기

텍스트 ↔ 바이너리 변환기