Base64를 10진수로 변환하는 방법
- 입력 · Base64에 Base64를 붙여넣으세요. 공백, 줄 바꿈, URL-safe 문자, 누락된 패딩이 있어도 됩니다.
- 출력 · 10진수 바이트에 바이트 값이 나타납니다.
- 출력 아래에서 구분자를 고르세요. 공백,
,,,, 새 줄 중에서 선택합니다. - 출력 복사를 누르거나 목록을 다운로드하세요. 10진수 바이트 → Base64 전환이나 10진수를 Base64로로 반대 변환을 할 수 있습니다.
예시
| Base64 | 10진수 바이트 | 내용 |
|---|---|---|
SGkh | 72 105 33 | 텍스트 Hi! |
SGkh/w== | 72 105 33 255 | Hi!와 0xff 바이트 하나 |
AQA= | 1 0 | 2바이트, 빅 엔디언 16비트 숫자로 256 |
AAAA | 0 0 0 | 0 바이트 세 개 |
//// | 255 255 255 | 모든 비트가 1인 바이트 세 개 |
fwAAAQ== | 127 0 0 1 | 원시 4바이트로 된 IPv4 주소 127.0.0.1 |
마지막 행은 쓸모 있는 활용법을 보여 줍니다. 바이너리 형식은 IPv4 주소를 4바이트로 저장하는데, 10진수 목록은 익숙한 점 표기에서 점만 뺀 모습입니다.
바이트 값인가, 하나의 큰 수인가
이 변환기는 바이트를 나열합니다. Base64 값 전체를 하나의 정수로 읽으면 다른 답이 나오고, 그 답은 바이트 순서에 따라 달라집니다. 두 바이트 1 0은 빅 엔디언 숫자로 읽으면 256이고 리틀 엔디언으로 읽으면 1입니다. 어느 쪽이 맞는지는 데이터를 만든 형식에 달려 있으므로, 이 변환은 그 점을 명시할 수 있는 코드에서 해야 합니다.
import base64
data = base64.b64decode("AQA=")
list(data) # [1, 0]
int.from_bytes(data, "big") # 256
int.from_bytes(data, "little") # 1
32비트 카운터, 타임스탬프, 큰 ID를 담은 Base64도 마찬가지입니다. 10진수 목록은 바이트를 보여 주고, 숫자는 int.from_bytes나 JavaScript의 DataView로 얻습니다.
10진수 바이트 목록을 쓰는 곳
- JSON. 일부 직렬화 도구는 바이너리 데이터를 숫자 배열로 씁니다. Node의
JSON.stringify(Buffer.from("Hi!"))는{"type":"Buffer","data":[72,105,33]}를 만듭니다.,구분자와 대괄호를 쓰면 같은 모양이 됩니다. - Python과 스프레드시트. Python의
list(b)는 10진수 값을 출력하고, 숫자 열(새 줄 구분자)은 스프레드시트에 그대로 붙여넣을 수 있습니다. - 마이크로컨트롤러와 시리얼 모니터. Arduino 코드와 많은 시리얼 도구는 바이트를 10진수로 보여 줍니다. C 등 다른 언어의 타입이 지정된 배열 선언이 필요하다면 Base64를 바이트 배열로가 리터럴 전체를 써 줍니다.
어딘가에 붙여넣는 것이 아니라 바이트를 직접 읽으려면 모든 바이트가 정확히 두 글자인 hex가 대개 더 명확합니다. Base64를 Hex로를 사용해 보세요.
코드에서 Base64를 10진수로
import base64
list(base64.b64decode("SGkh/w==")) # [72, 105, 33, 255]
Array.from(Buffer.from("SGkh/w==", "base64")).join(", "); // '72, 105, 33, 255'
Buffer가 없는 브라우저에서는 Array.from(atob(s), c => c.charCodeAt(0))가 같은 숫자를 돌려줍니다. 디코딩에 관한 자세한 내용은 Python과 JavaScript 페이지에서 다룹니다.
자주 묻는 질문
Base64를 10진수로 바꾼다는 것은 무슨 뜻인가요?
디코딩한 각 바이트를 일반적인 10진수로 쓴다는 뜻입니다. 1바이트는 0부터 255까지를 담으므로 출력은 그 범위의 숫자 목록이며, 바이트마다 하나씩입니다.
목록이 아니라 숫자 하나로 바꾸려면 어떻게 하나요?
코드에서 바이트를 하나의 정수로 읽으세요. Python에서는 int.from_bytes(base64.b64decode(s), "big")입니다. AQA=라면 256이 나오고, 이 페이지는 바이트 1 0을 나열합니다.
Base64에서 바이트 JSON 배열을 얻으려면 어떻게 하나요?
구분자를 , 로 설정하고 결과를 대괄호로 감싸세요. SGkh는 [72, 105, 33]이 되며 JSON 배열로 파싱됩니다.
이 페이지에서 255로 보이는 값을 Java는 왜 -1로 출력하나요?
Java의 byte 타입은 부호가 있으므로 128부터 255까지의 바이트는 −128부터 −1로 출력됩니다. 비트는 똑같습니다. Java에서 b & 0xff를 쓰면 여기 표시되는 0–255 값을 얻을 수 있습니다.