Как пользоваться
- Выберите «Кодировать», чтобы превратить текст в десятичные числа, или «Декодировать», чтобы получить текст из чисел.
- Введите или вставьте входные данные либо откройте файл. Результат обновляется по мере ввода.
- Выберите разделитель для чисел: «Пробел», «Запятая» или «Перевод строки».
- Скопируйте числа или скачайте их в виде файла.
Десятичные значения байтов и коды ASCII
Каждый символ хранится в компьютере в виде одного или нескольких байтов, а байт — это просто число от 0 до 255. Этот инструмент записывает каждое такое число в обычной десятичной системе. Для английского текста это привычные коды ASCII: заглавные латинские буквы занимают диапазон от 65 до 90, строчные — от 97 до 122, цифры от 0 до 9 — от 48 до 57, а пробел имеет код 32. Управляющие символы расположены ниже 32, например 10 — перевод строки, а 13 — возврат каретки.
Результат совпадает со списком, который возвращает ord() в Python или который получается при чтении Uint8Array в JavaScript. Так удобно находить в строке невидимые символы, окончания строк или метку порядка байтов (BOM).
Одно число на байт, а не одно большое число
Преобразование выполняется побайтово: слово из двух букв превращается в два числа, а не в одно целое. Значения больше 127 никогда не встречаются в тексте ASCII. В UTF-8 они идут сериями от двух до четырёх байтов, которые вместе образуют один символ, поэтому буква с диакритикой или китайский иероглиф дают несколько чисел. Чтобы получить одно значение на символ для западноевропейского текста, выберите ISO-8859-1, где значение каждого байта совпадает с кодовой точкой Unicode символа, или Windows-1252.
Если же нужно перевести одно число из одной системы счисления в другую, например 255 в шестнадцатеричную, воспользуйтесь конвертером систем счисления. Чтобы увидеть те же байты в другой записи, попробуйте шестнадцатеричный или двоичный вид.
Десятичные значения байтов в программах
# Python
list('Hi'.encode()) # [72, 105]
bytes([72, 105]).decode() # 'Hi'
// JavaScript
[...new TextEncoder().encode('Hi')] // [72, 105]
new TextDecoder().decode(new Uint8Array([72, 105])) // 'Hi'
Спецификация
| Алфавит | 0-9 |
|---|---|
| Размер результата | От 1 до 3 цифр на байт плюс разделители |
| Дополнение | Нет |
| Стандарт | Десятичные значения байтов |
| Учёт регистра | Нет |
Примеры
| Исходные данные (UTF-8) | Результат |
|---|---|
Hello, World! | 72 101 108 108 111 44 32 87 111 114 108 100 33 |
Base64.is | 66 97 115 101 54 52 46 105 115 |
你好 | 228 189 160 229 165 189 |
Часто задаваемые вопросы
Какой десятичный код ASCII у буквы A?
Заглавная A имеет код 65, а строчная a — 97, и в ASCII, и в UTF-8. Каждая следующая буква на единицу больше, поэтому Z — это 90, а z — 122.
Можно ли декодировать десятичные числа без разделителей?
Нет. Последовательность цифр вроде 72105 можно разбить несколькими способами, поэтому декодеру нужны числа, разделённые пробелами, запятыми, точками с запятой или переводами строк. Ведущие нули допускаются.
Почему числа больше 255 вызывают ошибку?
Байт хранит значения от 0 до 255. Большие числа, например кодовая точка Unicode 8364 знака евро, не являются значениями байтов. Введите сам символ и закодируйте его, чтобы увидеть его байты, например в UTF-8.
Почему один символ превращается в несколько чисел?
UTF-8 хранит символы за пределами ASCII в виде двух, трёх или четырёх байтов, и каждый байт становится отдельным числом. Если нужно одно число на каждый западноевропейский символ, выберите однобайтовую кодировку, например Windows-1252.