2진수를 Base64로 변환하는 방법
- 입력 · 2진수에 비트를 붙여넣으세요.
- 입력하는 동안 출력 · Base64에 Base64가 나타납니다.
- 출력 아래의 패딩 (=) 옵션은 끝의
=를 붙이거나 빼고, 줄 바꿈은 PEM이나 MIME용으로 결과를 64자 또는 76자마다 줄 바꿉니다. - 출력 복사나 다운로드를 누르세요. 결과를 확인하려면 Base64 → 2진수로 방향을 바꾸거나 Base64를 2진수로를 여세요.
입력을 읽는 방식
변환기는 두 가지 해석 중 하나를 고릅니다.
- 그룹 방식. 비트가 공백, 줄 바꿈, 쉼표, 세미콜론,
|로 나뉘어 있고 8비트보다 긴 그룹이 없으면 각 그룹이 한 바이트입니다. 짧은 그룹도 허용되므로1001000 1101001같은 7비트 ASCII는Hi로 읽히고,1 0 1은 값이 1, 0, 1인 3바이트입니다. - 연속 방식. 구분자가 없거나 8비트보다 긴 그룹이 하나라도 있으면 모든 비트를 이어 붙여 왼쪽부터 바이트로 자릅니다. 이때 전체 비트 수는 8의 배수여야 합니다.
두 경우 모두 0b 접두사는 건너뜁니다. 0, 1, 구분자 이외의 문자가 나오면 그 위치를 알려 주고 변환을 멈춥니다.
예시
| 2진수 | 바이트 | Base64 |
|---|---|---|
01001000 01101001 00100001 | 3 | SGkh |
01001000 01101001 | 2 | SGk= |
01001000 | 1 | SA== |
0100100001101001 | 2 | SGk= |
00000000 00000000 00000000 | 3 | AAAA |
11111111 11111111 11111111 | 3 | //// |
Base64는 비트 스트림을 6비트씩 읽으므로 24비트마다 정확히 네 문자가 됩니다. 모두 0이면 알파벳의 첫 문자인 A, 모두 1이면 마지막 문자인 /가 됩니다. 출력은 2진수 입력의 약 6분의 1 길이입니다. 바이트마다 들어올 때 8비트, 나갈 때 1.33문자입니다.
2진수 문자열은 어디서 오나
비트 문자열은 프로토콜 명세와 데이터시트, 비트마스크 상수, 진법 연습 문제, 비트 단위로 적어 둔 테스트 벡터에 등장합니다. Base64는 같은 바이트를 JSON, 설정 파일, HTTP 헤더에 간결하게 넣는 방법입니다. 이미 비트를 hex로 갖고 있다면 Hex를 Base64로가 붙여넣기 더 짧고, 10진수 바이트 값이라면 10진수를 Base64로를 사용하세요.
코드에서 2진수를 Base64로
import base64
bits = "0100100001101001"
data = int(bits, 2).to_bytes(len(bits) // 8, "big")
base64.b64encode(data).decode() # 'SGk='
int(bits, 2)는 앞쪽 0을 버리지만, 원래 길이로 to_bytes를 호출하면 다시 채워집니다. 공백으로 구분된 바이트라면 bytes(int(b, 2) for b in s.split())가 더 간단합니다.
const bits = "01001000 01101001";
Buffer.from(bits.split(" ").map(b => parseInt(b, 2))).toString("base64"); // 'SGk='
Python과 Node.js 페이지에서 반대 방향과 파일 처리를 볼 수 있습니다.
자주 생기는 문제
- “15비트는 바이트 단위로 나누어떨어지지 않습니다”. 메시지의 비트 수를 보면 얼마나 어긋났는지 알 수 있습니다. 대개 끊김 없는 문자열 안에서
01001000을1001000으로 쓴 것처럼 첫 바이트의 앞쪽 0이 빠진 경우입니다. - 그룹으로 입력했는데 예상과 다른 Base64. 9자리 이상인 그룹이 없는지 확인하세요. 긴 그룹 하나가 입력 전체를 연속 방식으로 바꾸어 바이트 경계가 옮겨집니다.
0대신 영문자나O. PDF나 채팅 앱에서 복사한 텍스트에는 대문자O나 비슷하게 생긴 문자가 섞여 있곤 합니다. 오류 메시지가 그 위치를 가리킵니다.
자주 묻는 질문
2진수 문자열을 Base64로 변환하려면 어떻게 하나요?
입력란에 비트를 붙여넣으세요. 바이트 단위로 묶여 있으면 각 그룹이 한 바이트가 되고, 끊김 없는 문자열 하나라면 8비트씩 잘립니다. 입력하는 동안 Base64가 나타납니다.
내 비트의 Base64가 = 기호로 끝나는 이유는 무엇인가요?
바이트 수가 3의 배수가 아니기 때문입니다. 2바이트면 = 하나, 1바이트면 ==가 붙습니다. 받는 쪽이 패딩 없는 Base64를 원하면 패딩 (=) 체크를 해제하세요.
비트 문자열이 8의 배수가 아닙니다. 어떻게 하나요?
Base64는 온전한 바이트를 인코딩하므로 도구가 찾은 비트 수를 알려 주며 멈춥니다. 첫 바이트에 빠진 앞쪽 0을 채우거나, 각 그룹이 하나의 바이트로 읽히도록 문자열을 직접 그룹으로 나누세요.
여기서 바이너리 파일을 Base64로 변환할 수 있나요?
이 페이지는 텍스트로 입력한 0과 1을 읽습니다. 이미지나 PDF 같은 실제 파일을 인코딩하려면 파일을 Base64로를 사용하세요.