파일 업로드
  1. base64hub
  2. 기타 진법
  3. Base64 → 2진수

Base64 2진수 변환기: 모든 비트 보기

Base64를 붙여넣으면 디코딩된 바이트를 8비트 2진수 묶음으로 볼 수 있습니다. 플래그와 비트 필드를 확인하거나, Base64가 한 글자마다 6비트를 담는 과정을 살펴볼 때 쓰세요.

무료 가입 없음, 제한 없음 로컬 업로드 없음 업데이트 2026. 10. 27.
입력 0바이트 0 B출력 0

브라우저에서 처리됩니다. 이 페이지는 데이터를 어디로도 보낼 수 없습니다 – 확인 방법

Base64를 2진수로 변환하는 방법

  1. 입력 · Base64에 Base64를 붙여넣으세요. 줄 바꿈, 공백, data: 접두사, URL-safe -와 _, 누락된 패딩도 모두 받습니다.
  2. 디코딩된 각 바이트가 출력 · 2진수에 8비트로 나타납니다.
  3. 출력 아래에서 구분자를 고르세요. 공백(기본값), 없음, , , ,, 새 줄 중에서 선택합니다.
  4. 출력 복사를 누르거나 비트를 다운로드하세요. 바이트 저장은 그 대신 디코딩된 데이터를 내용에 맞는 확장자의 파일로 저장합니다.

반대 방향은 2진수 → Base64 전환이나 2진수를 Base64로를 사용하세요.

Base64 문자가 비트가 되는 과정

Base64 문자는 각각 6비트를 나타냅니다. 알파벳에서의 위치로, A = 0부터 / = 63까지입니다. 네 글자면 24비트가 되고, 디코더는 이를 8비트 바이트 세 개로 다시 묶습니다. SGkh를 예로 들어 보겠습니다.

문자SGkh
값1863633
6비트010010000110100100100001

이어 붙이면 010010000110100100100001입니다. 바이트 단위로 자르면 다음과 같습니다.

바이트010010000110100100100001
10진수7210533
텍스트Hi!

따라서 SGkh는 Hi!이고, 2진수 출력은 01001000 01101001 00100001입니다. 글자 경계와 바이트 경계는 24비트마다만 맞아떨어지므로 Base64 문자 하나가 틀리면 이웃한 두 바이트가 망가질 수 있습니다. 같은 과정을 인코더 쪽에서 보려면 단계별 설명을 참고하세요.

패딩과 남는 비트

데이터가 3바이트의 배수가 아니면 마지막 그룹이 짧아집니다. Hi는 16비트라서 Base64 문자 세 개(18비트)가 필요합니다. 남는 2비트는 0으로 채우고, =로 그룹을 네 글자로 맞춥니다.

Base64담긴 비트출력 바이트
SGkh2401001000 01101001 00100001
SGk=18, 그중 2비트는 채움01001000 01101001
SA==12, 그중 4비트는 채움01001000

채움 비트는 출력에 절대 나타나지 않습니다. =가 존재하는 이유는 패딩 페이지에 더 자세히 있습니다.

비트 보기가 유용한 경우

  • 프로토콜과 파일 헤더는 여러 개의 예/아니요 플래그를 한 바이트에 담는 경우가 많습니다. 2진수로 보면 이런 비트 필드를 hex 숫자를 머릿속으로 변환하지 않고 바로 읽을 수 있습니다.
  • 두 값을 비교하려면 둘 다 디코딩하고 구분자를 새 줄로 설정해 줄 단위로 비교하세요. 뒤집힌 비트 하나도 쉽게 찾을 수 있습니다.
  • 학습이나 퍼즐에서는 8비트 바이트와 6비트 그룹을 나란히 보면 33% 크기 증가가 어디서 오는지 알 수 있습니다.

수십 바이트가 넘는 데이터는 hex가 더 읽기 쉽습니다. Base64를 Hex로는 같은 바이트를 4분의 1 공간에 보여 줍니다. 2진수 출력은 바이트당 8글자에 구분자가 더해지므로, Base64 100만 자(750,000바이트)는 약 675만 자의 2진수가 됩니다. 출력 상자에는 처음 200만 자가 표시되며, 출력 복사와 다운로드는 항상 전체 결과를 제공합니다.

코드에서 Base64를 2진수로

import base64
" ".join(f"{b:08b}" for b in base64.b64decode("SGkh"))
# '01001000 01101001 00100001'
Array.from(Buffer.from("SGkh", "base64"), b => b.toString(2).padStart(8, "0")).join(" ");
// '01001000 01101001 00100001'

디코딩된 바이트를 바이너리 파일로 쓰려면 Python에서는 open("out.bin", "wb").write(base64.b64decode(s)), Node에서는 fs.writeFileSync("out.bin", Buffer.from(s, "base64"))를 쓰세요. 전체 파일 예제는 Python과 Node.js 페이지에 있습니다.

자주 묻는 질문

Base64를 2진수로 바꾸는 것과 Base64 디코딩은 같은 것인가요?

디코딩은 같고 표시 방식만 다릅니다. 이 페이지는 바이트를 0과 1로 씁니다. “바이너리"가 흔히 뜻하는 파일 형태의 바이트가 필요하다면 Base64를 파일로를 쓰거나 여기서 바이트 저장 버튼을 누르세요.

Base64는 한 글자에 6비트인데 왜 바이트마다 8자리인가요?

출력은 바이트를 보여 주고, 1바이트는 8비트이기 때문입니다. Base64는 같은 비트 열을 6비트 단위로 자르므로 3바이트(24비트)는 항상 4글자가 됩니다.

공백 없이 비트만 받으려면 어떻게 하나요?

구분자를 없음으로 설정하세요. 그러면 SGk=가 하나의 문자열 0100100001101001이 됩니다.

패딩 비트는 어떻게 되나요?

버려집니다. SGk=의 마지막 글자는 6비트를 담지만 그중 4비트만 데이터이고, 나머지 2비트는 글자를 채우는 0이라 디코더가 버립니다.