Как перевести двоичный код в Base64
- Вставьте биты в поле Ввод · Двоичный.
- Base64 появляется в поле Результат · Base64 по мере ввода.
- Под результатом Дополнение (=) добавляет или убирает знаки
=в конце, а Перенос строк разбивает результат каждые 64 или 76 символов для PEM или MIME. - Нажмите Скопировать результат или Скачать. Чтобы проверить результат, переключите направление кнопкой Base64 → Двоичный или откройте Base64 в двоичный код.
Как читается ввод
Конвертер выбирает одно из двух прочтений:
- По группам. Если биты разделены пробелами, переводами строк, запятыми, точками с запятой или
|и ни одна группа не длиннее 8 бит, каждая группа читается как байт. Короткие группы допустимы, поэтому 7-битный ASCII вроде1001000 1101001читается какHi, а1 0 1даёт три байта со значениями 1, 0 и 1. - Сплошняком. Если разделителей нет или какая-то группа длиннее 8 бит, все биты склеиваются и режутся на байты слева. Тогда общее число битов должно быть кратно 8.
Префиксы 0b в обоих случаях пропускаются. Любой символ, кроме 0, 1 и разделителя, останавливает преобразование с указанием позиции.
Примеры
| Двоичный код | Байтов | 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 | //// |
Каждые 24 бита превращаются ровно в четыре символа, потому что Base64 читает поток битов по 6. Сплошные нули дают A, первый символ алфавита, а сплошные единицы – /, последний. Результат примерно в шесть раз короче двоичного ввода: на входе 8 символов на байт, на выходе 1,33.
Откуда берутся строки битов
Строки битов встречаются в спецификациях протоколов и даташитах, в константах битовых масок, в упражнениях по системам счисления и в тестовых векторах, расписанных побитно. В Base64 те же байты компактно ложатся в JSON, конфиг или HTTP-заголовок. Если биты уже есть в hex, проще вставить их в Hex в Base64; если у вас десятичные значения байтов, используйте Десятичные числа в Base64.
Двоичный код в Base64 в коде
import base64
bits = "0100100001101001"
data = int(bits, 2).to_bytes(len(bits) // 8, "big")
base64.b64encode(data).decode() # 'SGk='
int(bits, 2) теряет ведущие нули, но 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 бит не складываются в целое число байтов». Число в сообщении показывает, насколько вы промахнулись. Обычно у первого байта потерялся ведущий ноль, как в
1001000вместо01001000внутри сплошной строки. - Неожиданный Base64 из сгруппированного ввода. Проверьте, нет ли группы из 9 цифр и больше. Одна длинная группа переводит весь ввод в сплошной режим, и границы байтов сдвигаются.
- Буквы или
Oвместо0. В тексте, скопированном из PDF и мессенджеров, иногда попадается заглавнаяOили другие похожие символы. Сообщение об ошибке укажет позицию.
Вопросы и ответы
Как перевести строку битов в Base64?
Вставьте биты в поле ввода. Если они сгруппированы по байтам, каждая группа становится одним байтом; если это одна сплошная строка, она режется на куски по 8 бит. Base64 появляется по мере ввода.
Почему Base64 для моих битов заканчивается знаками =?
Число байтов не кратно 3. Два байта дают один =, один байт – ==. Снимите флажок Дополнение (=), если получателю нужен Base64 без него.
Длина моей строки битов не кратна 8. Что делать?
Base64 кодирует целые байты, поэтому инструмент остановится и сообщит, сколько битов нашёл. Допишите недостающие ведущие нули к первому байту или сами разбейте строку на группы, чтобы каждая читалась как отдельный байт.
Можно здесь перевести в Base64 двоичный файл?
Эта страница читает нули и единицы, набранные текстом. Чтобы закодировать настоящий файл, например картинку или PDF, используйте Файл в Base64.