EssayAI
Блог
Блог
Естественные науки

Кодирование текста в ASCII: коды, биты и объём

11 июня 2026Время чтения: 7 минут
#ascii#кодирование текста#двоичный код#кодировки#информатика

Компьютер не хранит буквы напрямую: внутри памяти есть только числа, а точнее нули и единицы. Чтобы текст можно было записать, передать и снова прочитать, каждому символу заранее сопоставляют число - его код. Самая известная такая таблица соответствий и есть ASCII (American Standard Code for Information Interchange). Кодирование текстовой информации в ASCII - это перевод каждого символа строки в его числовой код, а кода - в двоичный вид, который и хранится в памяти. Ниже разберём, как устроена таблица, как перевести символ в двоичный и шестнадцатеричный код, как посчитать объём текста в битах и байтах и чем ASCII отличается от современного Unicode. Чтобы сразу увидеть всю цепочку на своей строке, впишите её в калькулятор ниже: он покажет код, биты и объём каждого символа.

Что такое ASCII и код символа

ASCII - это таблица, в которой каждому символу сопоставлено целое число от 0 до 127. Заглавная латинская A имеет код 65, строчная a - код 97, цифра 0 - код 48, пробел - код 32. Эти числа не случайны: буквы идут подряд по алфавиту, поэтому из кода буквы легко получить соседнюю, прибавив или вычтя единицу, а заглавные и строчные отличаются ровно на 32.

Коды от 0 до 31 - это управляющие символы (перевод строки, табуляция, конец строки), они не печатаются. Коды от 32 до 126 - печатаемые знаки: пробел, цифры, латинские буквы и знаки препинания. Код 127 - служебный символ удаления. Именно поэтому в чистом ASCII всего 128 позиций, и каждой хватает семи двоичных разрядов.

Символ H проходит всю цепочку кодирования: сначала находится его номер в таблице ASCII (72), затем число раскладывается по степеням двойки в двоичный код 1001000, а тот же байт сворачивается в две шестнадцатеричные цифры 48

Как перевести символ в двоичный код

Перевод символа в двоичный код идёт в два шага. Сначала по таблице находим десятичный код символа, затем переводим это число в двоичную систему счисления. Например, для буквы H код равен 72. Раскладываем 72 по степеням двойки:

72=64+8=26+23,72 = 64 + 8 = 2^6 + 2^3,

значит, в двоичном виде это 100100021001000_2. Чтобы все символы занимали одинаковое место, код дополняют нулями слева до нужной разрядности. В чистом ASCII это 7 бит, но на практике под символ почти всегда отводят целый байт - 8 бит, поэтому H записывают как 0100100001001000.

Общая формула для кода символа cc через двоичные разряды bib_i выглядит так:

code(c)=i=0n1bi2i,\text{code}(c) = \sum_{i=0}^{n-1} b_i \cdot 2^{i},

где bib_i - значение ii-го разряда (0 или 1), а nn - разрядность. Старший разряд стоит слева. Калькулятор выше делает ровно это для каждого символа строки: подсвечивает синим единичные биты и серым - нулевые, так что виден характерный рисунок каждого байта.

Таблица битов для слова Hi: каждая строка - символ с его кодом, каждый столбец - двоичный разряд, единицы выделены цветом
Таблица битов для слова Hi: каждая строка - символ с его кодом, каждый столбец - двоичный разряд, единицы выделены цветом

Шестнадцатеричный код и почему он удобен

Двоичная запись точна, но длинна: один символ - это восемь нулей и единиц подряд, в которых легко запутаться. Поэтому байт чаще записывают в шестнадцатеричной системе, где одна цифра заменяет сразу четыре бита. Байт делится на две половинки по 4 бита, и каждая превращается в одну цифру от 0 до F:

010010002=01001000=4  8=4816.01001000_2 = 0100\,1000 = 4\;8 = 48_{16}.

Так буква H в шестнадцатеричном виде - это 481648_{16} (или 0x48), буква A - 411641_{16}, цифра 0 - 301630_{16}. Шестнадцатеричный код вдвое короче двоичного и однозначно с ним связан, поэтому им пользуются в редакторах кода, при отладке и в веб-разработке. Переключите разрядность в калькуляторе и сравните, как меняется длина двоичного кода, тогда как десятичный и шестнадцатеричный остаются прежними.

Сколько бит и байт занимает текст

Объём текста в ASCII считается очень просто, потому что каждый символ занимает фиксированное место. Если в строке NN символов, а на символ отводится kk бит, то весь текст занимает:

V=Nk бит.V = N \cdot k \ \text{бит}.

При стандартном байтовом хранении k=8k = 8, поэтому число байт равно числу символов: строка из 10 знаков - это 10 байт. Например, фраза Hi! состоит из трёх символов, значит, занимает 38=243 \cdot 8 = 24 бита, или 3 байта. Здесь важно помнить, что пробелы и знаки препинания - тоже символы со своими кодами, их обязательно считают.

Столбики десятичных кодов символов: видно, что заглавные буквы ниже строчных, а знаки препинания и цифры стоят в начале таблицы
Столбики десятичных кодов символов: видно, что заглавные буквы ниже строчных, а знаки препинания и цифры стоят в начале таблицы

Калькулятор сверху сразу показывает три числа - количество символов, всего бит и всего байт, - так что можно проверить расчёт объёма для любой строки. Это типовая школьная и вузовская задача: дана фраза, нужно найти её информационный объём в байтах при заданной разрядности кодировки.

Чем ASCII отличается от Unicode

У ASCII есть жёсткое ограничение: всего 128 кодов, а с расширенной таблицей (8 бит) - 256. Этого хватает для латиницы, но не для кириллицы, иероглифов или эмодзи. Поэтому появился Unicode - единая таблица для всех письменностей мира, в которой уже сотни тысяч символов. Способ записи Unicode-кодов в байты называется кодировкой; самая распространённая - UTF-8.

UTF-8 устроен совместимо с ASCII: первые 128 символов в нём кодируются одним байтом точно так же, как в ASCII, поэтому латинский текст в UTF-8 и ASCII выглядит одинаково. А вот кириллическая буква в UTF-8 занимает уже два байта, а редкий иероглиф - три или четыре. Если в калькуляторе ввести русскую букву, он отметит, что символ выходит за пределы таблицы ASCII: в чистом ASCII его записать нельзя.

Частые ошибки

  • Путают код символа и сам символ. Код цифры 0 в ASCII - это 48, а не 0. Чтобы из символа-цифры получить её числовое значение, из кода вычитают 48.
  • Забывают считать пробелы и знаки препинания. В объёме текста учитывается каждый символ, включая пробелы, запятые и точки - у каждого свой код.
  • Не дополняют двоичный код нулями. При байтовом хранении код всегда занимает 8 разрядов: 72 это 0100100001001000, а не 10010001001000, иначе сместится разрядность.
  • Считают, что русская буква помещается в один байт ASCII. Кириллицы в таблице ASCII нет: для неё нужен Unicode, и в UTF-8 такая буква занимает два байта.
  • Смешивают системы счисления. Десятичный 48, двоичный 1100002110000_2 и шестнадцатеричный 301630_{16} - это один и тот же код символа 0, записанный по-разному; их нельзя сравнивать как обычные числа без перевода.

FAQ

Какой код у буквы A в ASCII? Заглавная латинская A имеет десятичный код 65, что в двоичном виде равно 0100000101000001, а в шестнадцатеричном - 411641_{16}. Строчная a идёт под кодом 97, ровно на 32 больше.

Сколько байт занимает один символ в ASCII? Один символ ASCII занимает один байт (8 бит) при стандартном хранении или 7 бит в чистом виде. Поэтому объём текста в байтах равен количеству символов в нём, включая пробелы и знаки препинания.

Можно ли закодировать русский текст в ASCII? Нет, в таблице ASCII только латиница, цифры и знаки препинания - кириллицы там нет. Для русского текста используют Unicode и кодировку UTF-8, где каждая русская буква занимает два байта.

Коротко

Кодирование текста в ASCII - это сопоставление каждому символу числа от 0 до 127 и перевод этого кода в двоичный или шестнадцатеричный вид для хранения в памяти. Десятичный код находят по таблице, двоичный получают разложением по степеням двойки и дополняют нулями до 8 бит, а шестнадцатеричный сворачивает каждые 4 бита в одну цифру. Объём текста равен V=NkV = N \cdot k бит, то есть при байтовом хранении число байт совпадает с числом символов. Для языков за пределами латиницы ASCII не хватает - там работает Unicode и совместимая с ASCII кодировка UTF-8.

Доверьте текст нейросети EssayAI

Открыть EssayAI

Бесплатно, на русском языке и без VPN

Читайте также