2진수 → 10진수 변환기

→
10진수 = 각 비트 × 2의 자리 거듭제곱을 모두 더하기

2진수 → 10진수: 비트를 다시 의미 있는 수로

이 변환이 하는 일

0과 1로 된 문자열을 기수 2의 수로 읽어 기수 10으로 다시 씁니다. 화면에 보이는 값이 이미 기계 형식일 때 필요한 방향입니다. 레지스터 덤프나 마스크, 플래그 바이트를 놓고 그 값이 기준을 넘었는지 판단해야 할 때 이쪽으로 변환합니다.

자리값 가중합 방법

2진수 각 자리는 오른쪽부터 1, 2, 4, 8… 의 2의 거듭제곱을 나타냅니다. 1이 놓인 자리의 가중치를 모두 더하면 됩니다. 10011100은 128, 16, 8, 4 자리가 켜져 있으므로 156입니다. 앞쪽 가중치 여덟 개만 외우면 나머지는 짧은 덧셈입니다.

2진수 → 10진수 변환표

자주 쓰는 비트 패턴과 그 10진수 값입니다. 전부 1인 행을 기억해 두세요. 각각 다음 2의 거듭제곱보다 1 작은 값이라 255와 65535가 컴퓨팅 곳곳에 등장합니다.

2진수10진수
00
11
102
113
101010
111115
1000016
10101042
11111111255
100000000256

플래그 바이트와 상태 바이트 읽기

상태 바이트는 숫자라기보다 예와 아니오 여덟 개를 한 값에 밀어 넣은 것입니다. 10진수로 바꾸면 비교하고 로그에 남기기 좋은 압축된 손잡이가 되고, 개별 비트는 무슨 일이 있었는지 알려줍니다. 비트를 문서화한 데이터시트와 10진수를 기록한 로그 파일 사이를 오갈 때 이 변환이 다리 역할을 합니다.

앞쪽 0을 눈여겨보기

앞에 붙은 0은 값을 바꾸지 않습니다. 0011과 11은 둘 다 3입니다. 하지만 폭은 바뀌고 그 폭이 필드가 1바이트인지 4바이트인지 알려줍니다. 고정 폭 필드에서 값을 복사해 왔다면 변환기가 무시하더라도 메모에는 채움 자리를 남겨 두세요.

자주 묻는 질문

2진수를 머릿속으로 읽으려면 어떻게 하나요?

8비트 수라면 왼쪽부터 128, 64, 32, 16, 8, 4, 2, 1을 자리 위에 적고 1이 있는 자리의 값을 모두 더합니다. 10011100은 128 + 16 + 8 + 4 = 156입니다. 8비트로 연습해 두면 일상적인 대부분의 경우를 처리할 수 있습니다.

11111111이 256이 아니라 255인 이유는 무엇인가요?

8비트가 0부터 세어 256가지 값을 나타낼 수 있으므로 가장 큰 값은 255입니다. 일반적으로 n비트의 최댓값은 2의 n제곱에서 1을 뺀 값입니다. 1바이트가 256가지 값을 담는데 256은 담지 못하는 이유가 이 차이입니다.

바이트 사이에 공백이 있는 2진수도 붙여 넣을 수 있나요?

됩니다. 공백과 탭, 밑줄은 무시하므로 터미널이나 메모리 덤프에서 복사한 문자열을 손보지 않고 변환할 수 있습니다. 네 자리나 여덟 자리로 묶는 것은 읽기 편하라고 하는 것이지 그 자체에 의미가 있지 않습니다.

맨 앞이 1이면 음수인가요?

그 필드를 부호 있는 2의 보수로 쓰기로 미리 정했을 때만 그렇습니다. 그건 비트가 아니라 형식의 성질입니다. 단독으로 보면 11111111은 그냥 255입니다. 이 변환기는 마이너스 기호를 직접 입력하지 않는 한 모든 입력을 음이 아닌 크기로 다룹니다.

변환할 수 있는 가장 긴 2진수는 얼마나 되나요?

붙여 넣을 만한 값은 사실상 다 됩니다. 부동소수점이 아니라 정수 연산으로 동작하므로 계산기처럼 크기에 따라 정밀도가 떨어지지 않습니다. 지나치게 긴 입력은 조용히 잘리는 대신 안내 메시지와 함께 거부됩니다.

아래 코드를 복사하여 웹사이트에 붙여넣으면 이 변환기를 추가할 수 있습니다.

<!-- 2진수를 10진수로 -->
<iframe src="https://unitflow.net/ko/embed/binary-to-decimal" title="2진수를 10진수로" width="100%" height="420" loading="lazy" style="border:0;max-width:100%;display:block"></iframe>
<p><a href="https://unitflow.net/ko/binary-to-decimal" target="_blank" rel="noopener">UnitFlow 제공</a></p>