본문으로 건너뛰기
CalcMax

2진수-10진수 변환기

계산 결과

11

10진수

자릿값
8 + 2 + 1

2진수를 10진수로 바꾸는 변환기입니다. 1011처럼 0과 1로만 이루어진 수를 넣으면 그 값이 10진수로 얼마인지 알려 주고, 그 값이 어디서 나왔는지도 자릿값의 합으로 함께 보여 줍니다. 계산 방식은 자리마다 2의 거듭제곱을 곱해 더하는 것입니다. 오른쪽 끝을 0번째 자리로 두고, 각 자리의 숫자에 2의 그 자리 제곱을 곱한 뒤 모두 더합니다. 1011이라면 1×8 + 0×4 + 1×2 + 1×1이 되어 8 + 2 + 1, 곧 11이 됩니다. 결과로 나오는 자릿값 줄은 이 덧셈을 실제로 적어 놓은 것이므로, 어떤 자리가 값을 만들었고 어떤 자리가 아무것도 보태지 않았는지가 한눈에 보입니다. 더해진 항의 개수는 1인 자리의 개수와 같고, 빠진 자리는 0인 자리입니다. 자릿값을 직접 더해 보면 10진수 결과와 반드시 같아지므로 두 출력으로 서로를 검산할 수 있습니다. 맨 앞의 0은 값을 바꾸지 않으므로 00001011은 1011과 같은 수로 읽고 같은 결과를 냅니다. 음수도 받습니다. 부호는 앞에 붙고 나머지 자리는 같은 방식으로 읽으므로, -1011은 −(8 + 2 + 1)이 되어 −11이 됩니다. 2진수는 자리마다 값이 두 배가 되므로 자릿수가 늘수록 값이 빠르게 커집니다. 이 페이지는 배정밀도로 계산해 2의 53제곱에서 1을 뺀 수까지 정확히 다루며, 그보다 큰 수나 0과 1 이외의 문자는 계산하지 않고 입력 칸을 빨갛게 표시합니다.

바이트를 이루는 비트마다의 자릿값

비트2의 거듭제곱값
72⁷128
62⁶64
52⁵32
42⁴16
32³8
22²4
12¹2
02⁰1

한 바이트의 여덟 자리를 왼쪽 끝에서 오른쪽 끝까지 늘어놓은 표입니다. 왼쪽 끝이 가장 큰 값인 128이고 오른쪽 끝이 1이며, 오른쪽으로 한 칸 갈 때마다 값이 절반이 됩니다. 10진수로 바꿀 때는 1인 자리에 해당하는 줄의 값만 더하면 되고, 0인 자리는 건너뜁니다. 1011이라면 8, 2, 1 세 줄을 더해 11이 되며, 이때 4가 빠지는 것이 바로 자릿값 줄에서 4가 없는 이유입니다. 표의 값은 모두 2의 거듭제곱이라 외워 둘 가치가 있습니다. 표의 수치는 페이지를 만들 때마다 다시 계산되며, 첫 두 열의 표기는 이 페이지가 쓰는 자리 이름입니다.

공식

1011 = 1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 8 + 2 + 1 = 11

2진수
변환할 2진수입니다. 0과 1로만 적고, 자릿값은 오른쪽 끝이 1이고 왼쪽으로 갈수록 2, 4, 8로 두 배씩 커집니다. 맨 앞의 0은 값을 바꾸지 않으므로 붙여도 되고 지워도 됩니다. 음수는 앞에 빼기 부호를 붙여 적습니다
2ⁿ
각 자리가 나타내는 값입니다. 오른쪽 끝을 0번째로 세어, n번째 자리는 2의 n제곱을 나타냅니다. 그래서 2진수는 자리가 하나 늘 때마다 표현할 수 있는 범위가 정확히 두 배가 됩니다
자리 × 2ⁿ
10진수로 바꾸는 실제 계산입니다. 자리의 숫자가 1이면 그 자리의 2의 거듭제곱을 더하고, 0이면 아무것도 더하지 않습니다. 0을 곱하는 항은 결과에 영향을 주지 않으므로 자릿값 줄에서 빠지고, 빠진 자리가 곧 0인 자리입니다
Σ
모든 자리에 대해 이 곱을 더한다는 뜻입니다. 더하는 순서는 값에 영향을 주지 않으므로 오른쪽부터 왼쪽으로, 또는 왼쪽부터 오른쪽으로 읽어도 결과는 같습니다. 손으로 검산할 때는 큰 항부터 더하는 편이 편합니다
8 + 2 + 1
결과로 표시되는 자릿값의 합입니다. 1011에서 값에 보태진 자리는 8, 2, 1 세 개뿐이고 4는 0인 자리라 빠졌습니다. 이 항목들을 더하면 11이 되어 10진수 결과와 같아지므로, 두 출력이 서로의 검산이 됩니다
53비트
이 페이지가 정확히 처리하는 마지막 자리입니다. 배정밀도 부동소수점의 유효 숫자가 53비트이므로, 1이 53개 늘어선 2진수까지가 정확히 변환되는 값입니다. 그보다 큰 수는 근삿값이 되는 대신 입력 단계에서 거부됩니다

2진수로 적힌 값을 사람이 읽을 수 있는 수로 바꿔야 할 때 쓰는 페이지입니다. 메모리 덤프나 비트 마스크, 레지스터 값을 확인하거나, 2진수로 표시된 플래그가 실제로 몇 번 항목을 켠 것인지 알고 싶을 때 필요합니다. 이 페이지가 자릿값까지 함께 보여 주는 이유는 값만 알려 주면 검산할 방법이 없기 때문입니다. 더해진 항을 세면 1인 자리의 개수를 알 수 있고, 빠진 항을 보면 0인 자리를 알 수 있습니다. 회로나 프로토콜처럼 특정 비트가 켜졌는지가 중요한 상황에서는 10진수 값보다 이쪽이 더 쓸모 있습니다. 값을 눈으로 확인하는 가장 빠른 방법은 자릿값 줄을 위에서부터 더해 보는 것이고, 그 합이 10진수 결과와 다르면 입력이 잘못 들어간 것입니다. 2의 거듭제곱은 1, 2, 4, 8, 16, 32, 64, 128처럼 두 배씩 늘어나므로 몇 개만 외워 두면 8자리까지는 암산으로도 확인할 수 있습니다.

계산 예시

  1. 1011을 10진수로

    1. 자리를 오른쪽부터 셉니다: 1의 자리, 2의 자리, 4의 자리, 8의 자리
    2. 1×8 + 0×4 + 1×2 + 1×1
    3. 0인 자리는 항에서 빠지므로 8 + 2 + 1
    4. 8 + 2 + 1 = 11

    페이지가 처음 열릴 때 들어 있는 입력입니다. 4의 자리가 0이라 4가 항에 없고, 이것이 자릿값 줄을 읽는 방법을 그대로 보여 줍니다. 더해진 항이 세 개이므로 1인 자리도 세 개입니다. 4는 빠졌지만 값에는 아무 영향이 없으며, 빠졌다는 사실 자체가 그 자리가 0이라는 정보입니다.

  2. 10110010을 10진수로

    1. 1×128 + 0×64 + 1×32 + 1×16 + 0×8 + 0×4 + 1×2 + 0×1
    2. 0인 자리를 빼면 128 + 32 + 16 + 2
    3. 128 + 32 + 16 + 2 = 178

    여덟 자리, 곧 한 바이트짜리 입력입니다. 항이 네 개뿐이라 1인 비트가 네 개라는 것을 바로 알 수 있습니다. 178은 128과 32와 16과 2를 더한 값이며, 같은 값을 16진수로 쓰면 B2가 됩니다. 바이트 단위 값을 다룰 때는 128, 64, 32, 16, 8, 4, 2, 1 여덟 개만 외워 두면 이 정도는 암산으로 검산할 수 있습니다.

  3. 앞에 0이 붙은 00001011

    1. 맨 앞의 0은 값을 바꾸지 않으므로 1011과 같은 수입니다
    2. 1×8 + 0×4 + 1×2 + 1×1
    3. 8 + 2 + 1 = 11

    자릿수를 맞추려고 앞에 0을 붙여 넣은 경우입니다. 값도 자릿값도 1011과 완전히 같게 나오므로 0을 지울 필요가 없습니다. 고정된 폭으로 값을 적는 환경에서는 오히려 앞의 0이 자리 수를 알려 주는 정보가 되므로, 그대로 넣고 결과만 확인하면 됩니다.

  4. 음수 -1011

    1. 부호를 떼고 1011을 읽으면 8 + 2 + 1 = 11
    2. 부호를 다시 붙이면 −11
    3. 자릿값도 음수 전체를 괄호로 묶어 −(8 + 2 + 1)로 표시됩니다

    음수를 넣었을 때 부호가 어떻게 다루어지는지 보여 주는 예입니다. 자릿값 줄에서는 음수 전체가 괄호로 묶이므로, 안쪽의 덧셈은 양수일 때와 똑같이 읽으면 됩니다. 여기서 쓰는 부호는 사람이 읽는 부호이며 2의 보수 표기가 아니라는 점에 주의해야 합니다. 컴퓨터가 실제로 저장하는 음수 비트 패턴을 보고 싶다면 자릿수를 정해 두고 2의 보수를 직접 구해야 합니다.

한계

2진수 하나만 받으며, 0과 1로만 이루어져야 합니다. 102처럼 2진수에 없는 숫자가 섞이면 변환하지 않고 입력 칸을 빨갛게 표시하고, 소수점이 있는 값도 받지 않습니다. 정수만 다룹니다. 자릿수는 1이 53개 늘어선 2진수, 곧 10진수로 9,007,199,254,740,991까지이며 그보다 큰 수는 배정밀도로 정확히 표현할 수 없어 거부합니다. 자릿값 줄은 1인 자리만 더한 형태로 표시되므로 0인 자리는 나타나지 않습니다. 빠진 항이 있다고 해서 계산이 덜 된 것이 아니라, 그 자리에 0이 있었다는 뜻입니다. 자릿값의 항 순서는 큰 값에서 작은 값으로 내려가며, 이는 자리 순서와 같습니다. 결과로 나오는 10진수는 페이지가 3자리마다 쉼표를 넣어 표시합니다. 한국어에서는 네 자리씩 끊어 만, 억, 조로 읽는 것이 익숙하지만 이 계산기의 출력은 프로그래밍 환경에서 쓰는 3자리 묶음이므로, 178은 그대로 178이고 12345는 12,345로 표시됩니다. 화면에 보이는 쉼표를 그대로 옮겨 적는 편이 안전합니다. 이 페이지에는 단위가 없습니다. 입력도 출력도 그냥 수이며, 값의 크기를 나타내는 접두어 같은 것은 붙지 않습니다.

자주 묻는 질문

자릿값 줄에 항이 몇 개 없는 것은 계산이 빠진 건가요?
아닙니다. 자릿값 줄은 1인 자리만 더한 형태로 표시되고 0인 자리는 항에서 빠집니다. 0을 곱한 항은 값을 바꾸지 않으므로 표시할 이유가 없기 때문입니다. 빠진 항이 몇 개인지 세면 0인 자리가 몇 개인지도 알 수 있으니, 이는 정보가 줄어든 것이 아니라 오히려 늘어난 것입니다.
2진수 10진수 변환은 어떻게 하나요?
오른쪽 끝을 0번째 자리로 두고, 각 자리의 숫자에 2의 그 자리 제곱을 곱해 모두 더합니다. 1011이라면 1×8 + 0×4 + 1×2 + 1×1이 되어 11이 됩니다. 자릿값 줄이 바로 이 덧셈을 적어 놓은 것이므로, 손으로 검산할 때는 그 항들을 그대로 더하면 됩니다.
자릿값에 쓰이는 2의 거듭제곱은 어디까지 알아야 하나요?
1, 2, 4, 8, 16, 32, 64, 128 여덟 개만 외워도 한 바이트는 암산으로 확인할 수 있습니다. 자리가 하나 늘 때마다 값이 두 배가 되므로 그 뒤로는 계속 두 배씩 늘려 가면 됩니다. 2의 53제곱에서 1을 뺀 수가 이 페이지가 받는 마지막 값이며, 그 이상은 배정밀도로 정확히 표현되지 않아 거부됩니다.
음수 2진수는 어떻게 변환하나요?
부호를 떼고 나머지 자리를 양수와 같은 방식으로 읽은 뒤 부호를 다시 붙입니다. 자릿값 줄에서는 음수 전체가 괄호로 묶여 표시되므로 안쪽 덧셈은 양수일 때와 같습니다. 여기서 다루는 부호는 사람이 읽는 표기이며, 컴퓨터가 저장하는 2의 보수 비트 패턴과는 다릅니다.
맨 앞의 0을 지워야 하나요?
지우지 않아도 결과가 같습니다. 00001011은 1011과 같은 수로 읽히고 10진수 값도 자릿값도 동일하게 나옵니다. 고정된 폭으로 값을 적는 환경에서는 앞의 0이 자릿수를 알려 주는 정보가 되므로 그대로 두는 편이 낫습니다.
10진수 결과에 왜 쉼표가 붙나요?
세 자리마다 자릿수를 끊어 읽기 쉽게 만든 표시입니다. 한국어에서는 네 자리씩 끊어 만, 억, 조로 읽는 것이 익숙하지만, 이 계산기의 출력은 프로그래밍 환경에서 쓰는 세 자리 묶음입니다. 12345는 12,345로 표시되므로 화면에 보이는 쉼표를 그대로 옮겨 적으면 됩니다.

참고 문헌

관련 계산기