Как перевести десятичные числа в Base64
- Вставьте числа в поле Ввод · Десятичные байты. Каждое число даёт один байт.
- Поле Результат · Base64 заполняется по мере ввода.
- Формат результата настраивают Дополнение (=) (знаки
=в конце) и Перенос строк (разбивка длинной строки по 64 или 76 символов). - Нажмите Скопировать результат. Чтобы проверить его, переключитесь на Base64 → Десятичные байты; Base64 в десятичные числа открывает тот же инструмент в обратную сторону.
Форматы ввода
| Ввод | Источник | Base64 |
|---|---|---|
72 105 33 | простой список | SGkh |
[72, 105, 33] | JSON, list(b) в Python | SGkh |
{72, 105, 33} | инициализатор C или Java | SGkh |
72;105;33 | выгрузки CSV с ; | SGkh |
[72, 105, -1] | Arrays.toString(bytes) в Java | SGn/ |
072 105 | столбцы, дополненные нулями | SGk= |
Числа с ведущими нулями читаются как десятичные, так что 072 означает 72. Каждое значение должно быть целым числом от −128 до 255. Значение вне этого диапазона останавливает конвертацию, и сообщение называет его; для случайной буквы или точки, как в 72.105, сообщение указывает позицию, а Показать выделяет символ.
Если в списке hex-значения вроде 48 69 21, они прочитаются как десятичные 48, 69 и 21 и дадут другой результат. Для них используйте Hex в Base64. Для массивов, скопированных из исходников, со значениями 0x, приведениями типов или именами типов лучше подходит Массив байтов в Base64.
Откуда берутся списки десятичных байтов
Чаще всего список десятичных байтов появляется потому, что так язык программирования печатает двоичные данные по умолчанию:
| Где | Что печатает для Hi! |
|---|---|
Python list(b"Hi!") | [72, 105, 33] |
Node.js JSON.stringify(Buffer.from("Hi!")) | {"type":"Buffer","data":[72,105,33]} |
Java Arrays.toString("Hi!".getBytes()) | [72, 105, 33] |
JavaScript Array.from(new TextEncoder().encode("Hi!")) | [ 72, 105, 33 ] |
Переведя такой список в Base64, вы получаете компактную строку для конфига, тестовой фикстуры или API-запроса. 72, 105, 33 занимает 11 символов, а Base64 SGkh – всего 4.
Десятичные числа в Base64 в коде
import base64
base64.b64encode(bytes([72, 105, 33])).decode() # 'SGkh'
На отрицательных значениях bytes() выбрасывает ValueError: bytes must be in range(0, 256). Сначала переведите знаковые байты в стиле Java через [v & 0xff for v in values].
Buffer.from([72, 105, 33]).toString("base64"); // 'SGkh'
Buffer.from без возражений берёт каждое значение по модулю 256, так что -1 становится 255, а 256 молча превращается в 0. Инструмент выше 256 не принимает, и это ловит списки, которые на самом деле не байты. Подробнее об этом на страницах Python и Node.js.
Числа, которые не байты
У одного большого числа, например ID пользователя, временной метки или счётчика, нет единственной формы в Base64, пока вы не решите, сколько байтов оно занимает и в каком порядке. Unix-время 1700000000 как 4-байтовое значение в big-endian кодируется в ZVPxAA==, а как 8 байтов в AAAAAGVT8QA=. Выберите раскладку, которую ждёт принимающая система, и закодируйте её в коде; эта страница намеренно отвергает значения больше 255, чтобы список 16- или 32-битных чисел не приняли за байты.
Вопросы и ответы
Можно перевести в Base64 одно число, например 1000?
На этой странице нельзя: здесь каждое число означает один байт, а 1000 в байт не помещается. Решите, сколько байтов и какой порядок байтов должно иметь число, и закодируйте эти байты. В Python base64.b64encode((1000).to_bytes(2, "big")) даёт A+g=.
Какие разделители можно ставить между числами?
Пробелы, табуляции, переводы строк, запятые и точки с запятой в любой комбинации. Квадратные, фигурные и круглые скобки игнорируются, так что массив JSON или инициализатор C можно вставлять как есть.
Как обрабатываются отрицательные числа?
Значения от −1 до −128 читаются как знаковые байты в том виде, как их печатают Java и Kotlin: −1 превращается в 255, а −128 в 128. Всё, что меньше −128, вызывает ошибку.
Как перевести массив байтов из JSON в Base64?
Вставьте массив вместе со скобками. Для объектов Node вида {"type":"Buffer","data":[...]} вставьте только массив data.