본문으로 건너뛰기
CalcMax

2진수 계산기

계산 결과

10001

2진수

10진수
17
16진수
11
나머지
0

2진수 계산기는 2진수 두 개를 받아 덧셈, 뺄셈, 곱셈, 나눗셈을 수행하고, 그 결과를 2진수와 10진수, 16진수 세 가지 표기로 나란히 보여줍니다. 두 수를 1011과 110처럼 0과 1로만 이루어진 문자열로 넣고 연산을 고르면 나머지는 페이지가 처리합니다. 결과 칸에 놓이는 세 수는 서로 다른 답이 아니라 같은 값을 세 가지 방식으로 쓴 것이라, 언제나 같은 값을 가리킵니다. 16진수로의 변환 결과가 함께 나오는 이유는 2진수 네 자리가 16진수 한 자리와 정확히 대응하기 때문입니다. 나눗셈은 정수 나눗셈이라 몫을 반올림하지 않고 0 방향으로 버리며, 나머지는 따로 한 줄에 남습니다. 나머지 줄은 어떤 연산에서도 화면에 있고, 덧셈과 뺄셈, 곱셈에서는 0으로 표시됩니다. 그래서 나머지가 0으로 보이는 것은 나머지가 없다는 뜻이며 오류가 아닙니다. 연산은 두 입력의 순서에 따라 답이 달라집니다. 첫 번째 2진수에서 두 번째 2진수를 빼고, 첫 번째를 두 번째로 나누기 때문에, 순서를 바꾸면 부호가 뒤집힌 값을 얻습니다. 계산기 앞의 0은 값을 바꾸지 않으므로 1011과 00001011은 같은 수로 읽습니다. 2진수는 자릿수가 곧 2의 거듭제곱이라 자리가 하나 늘 때마다 표현 범위가 두 배가 됩니다. 이 페이지는 배정밀도 부동소수점으로 계산하므로 2의 53제곱에서 1을 뺀 수, 즉 2진수로 1이 53개 늘어선 수까지 정확히 다룹니다. 그보다 큰 수나 0과 1 이외의 문자가 들어오면 계산을 진행하지 않고 해당 입력 칸을 빨갛게 표시합니다.

공식

1011 + 110 = 10001 (11 + 6 = 17)

1011
첫 번째 2진수입니다. 0과 1로만 이루어진 문자열로 적고, 자릿값은 오른쪽 끝이 1이고 왼쪽으로 갈수록 2, 4, 8로 두 배씩 커집니다. 맨 앞의 0은 값을 바꾸지 않으므로 붙여도 되고 지워도 됩니다. 뺄셈과 나눗셈에서는 이 수가 빼지는 쪽, 나뉘는 쪽이므로 두 칸의 순서가 답을 바꿉니다
+ − × ÷
네 가지 연산 중 하나를 고릅니다. 덧셈과 곱셈은 두 수의 순서를 바꿔도 답이 같지만, 뺄셈과 나눗셈은 그렇지 않습니다. 나눗셈은 정수 나눗셈이라 소수점 이하를 만들지 않고 몫을 0 방향으로 버린 뒤 나머지를 따로 남깁니다
1 + 1 = 10
2진수 덧셈의 받아올림 규칙입니다. 10진수에서 9 + 1이 두 자리가 되듯, 2진수에서는 1 + 1이 두 자리가 되어 10이 되고 그 윗자리로 1을 올립니다. 이 규칙 하나만 지키면 나머지 계산은 10진수와 같은 방식으로 진행됩니다
자릿값 × 2ⁿ
2진수를 10진수로 읽는 방법입니다. 오른쪽 끝을 0번째 자리로 두고, 각 자리의 0 또는 1에 2의 그 자리 제곱을 곱해 모두 더합니다. 1011이라면 8 + 2 + 1이 되어 11이 됩니다. 결과 칸의 10진수는 이렇게 구한 값입니다
나머지
나눗셈에서 몫으로 나누고 남은 값입니다. 몫을 0 방향으로 버리므로 나머지는 나뉘는 수의 부호를 따라갑니다. 덧셈과 뺄셈, 곱셈에서는 나머지라는 것이 존재하지 않으므로 이 줄은 0으로 채워집니다. 값이 0인 것과 계산이 실패한 것은 다릅니다
53비트
이 페이지가 받는 입력의 한계입니다. 배정밀도 부동소수점은 유효 숫자를 53비트까지만 정확히 담으므로, 2의 53제곱에서 1을 뺀 수까지가 정확히 계산되는 마지막 값입니다. 그보다 큰 수는 값을 잃은 채 통과시키는 대신 입력 단계에서 거부합니다

2진수끼리 실제로 계산을 해야 할 때 쓰는 페이지입니다. 컴퓨터가 다루는 값의 폭을 확인하거나, 마스크와 플래그를 손으로 조합해 보고, 메모리 주소나 비트 필드를 읽을 때 2진수 산술이 필요합니다. 다만 손으로 2진수를 계산하는 일 자체는 드물고, 대개는 10진수로 확인하는 쪽이 빠릅니다. 그래서 이 페이지가 10진수와 16진수 결과를 함께 내놓습니다. 세 표기가 같은 값을 가리키므로 어느 하나로 검산하면 됩니다. 16진수는 2진수 네 자리를 한 자리로 줄여 주므로, 자릿수가 긴 값을 눈으로 비교할 때 특히 유용합니다. 나눗셈 결과를 볼 때는 몫과 나머지를 함께 읽어야 합니다. 정수 나눗셈이라 몫만 보면 버려진 부분이 보이지 않습니다. 그리고 뺄셈과 나눗셈은 두 입력의 순서를 바꾸면 답이 달라지므로, 예상과 다른 값이 나왔다면 계산보다 입력 순서를 먼저 확인하는 편이 빠릅니다.

계산 예시

  1. 1011 + 110

    1. 자리를 맞춰 씁니다: 1011과 0110
    2. 오른쪽부터: 1 + 0 = 1, 1 + 1 = 10 (받아올림 1), 0 + 1 + 1 = 10 (받아올림 1), 1 + 0 + 1 = 10 (받아올림 1)
    3. 남은 받아올림 1을 맨 앞에 붙이면 10001
    4. 10진수로 검산: 11 + 6 = 17
    5. 17을 16진수로 쓰면 11

    페이지가 처음 열릴 때 들어 있는 입력입니다. 2진수 덧셈이 10진수와 얼마나 비슷한지 보여 주는 예로, 다른 점은 9 + 1이 아니라 1 + 1에서 자리가 올라간다는 것뿐입니다. 세 출력이 같은 값을 가리킨다는 사실도 여기서 확인할 수 있습니다. 10001과 17과 11은 서로 다른 답이 아니라 하나의 값입니다.

  2. 1011 ÷ 10

    1. 10진수로 검산: 11 ÷ 2 = 5, 나머지 1
    2. 몫 5를 2진수로 쓰면 101
    3. 나머지 1은 그대로 1이며, 2진수 한 자리로 표시됩니다
    4. 나머지가 0이 아니므로 이 나눗셈은 나누어떨어지지 않았습니다

    나머지 줄이 실제로 값을 갖는 유일한 연산입니다. 정수 나눗셈이라 몫은 0 방향으로 버려지고, 버려진 몫은 1이 되어 나머지 줄에 남습니다. 몫 101은 5이고 나머지 1을 붙이면 원래 값 1011로 돌아오므로, 검산은 몫 곱하기 나누는 수 더하기 나머지가 원래 수가 되는지 보면 됩니다.

  3. 110 − 1011

    1. 10진수로 검산: 6 − 11 = −5
    2. −5를 2진수로 쓰면 −101
    3. 16진수로도 같은 값이므로 −5
    4. 나머지 줄은 뺄셈이므로 0입니다

    두 입력의 순서가 답을 바꾼다는 것을 보여 주는 예입니다. 큰 수에서 작은 수를 빼면 101이 나오지만, 여기서는 순서가 반대라 부호가 붙은 −101이 나옵니다. 음수는 부호를 앞에 붙여 표시하며, 이 페이지에는 2의 보수 표기가 따로 없습니다. 음수 2진수를 비트 패턴으로 보고 싶다면 고정된 자릿수를 정해 두고 직접 2의 보수를 구해야 합니다.

한계

2진수 두 개만 받으며, 각각 0과 1로만 이루어져야 합니다. 102처럼 2진수에 없는 숫자가 섞이면 계산하지 않고 그 입력 칸을 빨갛게 표시합니다. 소수점이 있는 2진수도 받지 않습니다. 정수만 다룹니다. 자릿수는 2의 53제곱에서 1을 뺀 값까지이며, 이는 1이 53개 늘어선 2진수에 해당합니다. 그보다 큰 수는 배정밀도로 정확히 표현할 수 없어 거부합니다. 나눗셈은 정수 나눗셈이라 몫을 0 방향으로 버리고 나머지를 따로 남기며, 나머지는 나뉘는 수의 부호를 따라갑니다. 그래서 음수를 나눌 때는 몫과 나머지가 모두 음수로 나올 수 있습니다. 나머지 줄은 덧셈과 뺄셈, 곱셈에서도 항상 표시되며 그때는 0입니다. 값이 0인 것과 계산이 실패한 것은 다르므로 이 줄이 보인다고 해서 오류로 읽지 마십시오. 결과 칸의 10진수는 페이지가 3자리마다 쉼표를 넣어 표시합니다. 한국어에서는 네 자리씩 끊어 만, 억, 조로 읽는 것이 익숙하지만, 이 계산기의 출력은 프로그래밍 환경에서 쓰는 3자리 묶음입니다. 12345는 12,345로 표시되며, 이를 1만 2345로 바꾸어 읽는 것은 화면 표시와 다른 표기입니다. 결과를 그대로 옮겨 적을 때는 화면에 보이는 쉼표 위치를 따르는 편이 안전합니다.

자주 묻는 질문

결과 칸에 2진수, 10진수, 16진수가 함께 나오는데 어느 것을 봐야 하나요?
세 수는 서로 다른 답이 아니라 같은 값의 세 가지 표기입니다. 2진수로 계산한 결과를 읽기 편한 형태로 함께 보여 주는 것이므로, 검산할 때는 익숙한 10진수를 보면 됩니다. 16진수는 2진수 네 자리를 한 자리로 줄여 주므로 자릿수가 긴 값을 눈으로 비교할 때 편합니다.
나머지가 0으로 나오는데 계산이 잘못된 건가요?
아닙니다. 나머지 줄은 나눗셈뿐 아니라 덧셈과 뺄셈, 곱셈에서도 표시되며 그때는 0입니다. 곱셈에는 나머지라는 개념이 없으므로 0으로 채워지는 것이 정상입니다. 나눗셈에서 나머지가 0이면 나누어떨어졌다는 뜻이고, 그 외의 값이면 몫을 0 방향으로 버리고 남은 값이 그대로 표시된 것입니다.
입력 순서를 바꾸면 답이 달라지나요?
덧셈과 곱셈은 순서를 바꿔도 답이 같지만, 뺄셈과 나눗셈은 달라집니다. 이 페이지는 첫 번째 2진수에서 두 번째 2진수를 빼고, 첫 번째를 두 번째로 나눕니다. 그래서 순서를 바꾸면 부호가 뒤집힌 값이 나오며, 값이 이상해 보일 때는 계산보다 두 칸의 순서를 먼저 확인하는 편이 빠릅니다.
2진수 나머지는 음수가 될 수 있나요?
될 수 있습니다. 나눗셈은 몫을 0 방향으로 버리는 정수 나눗셈이라 나머지가 나뉘는 수의 부호를 따라갑니다. 예를 들어 음수를 양수로 나누면 몫과 나머지가 모두 음수로 나옵니다. 이는 오류가 아니라 0 방향으로 버리는 나눗셈의 정의 그대로입니다.
어떤 수까지 입력할 수 있나요?
2의 53제곱에서 1을 뺀 수까지입니다. 2진수로는 1이 53개 늘어선 수에 해당합니다. 배정밀도 부동소수점이 유효 숫자를 53비트까지만 정확히 담기 때문이며, 그보다 큰 수는 값을 잃은 채 계산되는 대신 입력 단계에서 거부됩니다. 10진수로는 9,007,199,254,740,991입니다.
맨 앞의 0은 지워야 하나요?
지우지 않아도 됩니다. 2진수에서 맨 앞의 0은 값을 바꾸지 않으므로 1011과 00001011은 같은 수로 읽히고 결과도 같습니다. 자릿수를 맞춰 보거나 바이트 단위로 끊어 읽을 때는 오히려 남겨 두는 편이 편합니다. 다만 결과는 항상 필요한 자리만 남긴 형태로 나옵니다.

참고 문헌

관련 계산기