Google Play badge

ascii


ASCII: как компьютеры хранят буквы и символы

Большая идея

Компьютеры используют числа. Люди используют буквы и символы. Нам нужен мост. ASCII — это и есть этот мост. ASCII преобразует каждую букву или символ в число. Компьютер сохраняет это число. Когда мы читаем, компьютер снова отображает букву. Именно так текст выглядит во многих файлах и приложениях.

Зачем компьютерам нужен код

Компьютер работает с электричеством. Он видит два состояния: «Включено» и «Выключено». Мы называем эти состояния битами . Бит — это 0 или 1. Много бит вместе составляют более крупные числа. Восемь бит составляют байт . С помощью битов мы можем считать. С помощью счёта мы можем давать названия вещам. ASCII использует счёт для наименования букв и символов.

Один бит даёт два варианта выбора. Два бита даёт четыре варианта выбора. В математике это обозначено как \(\;2^n\) . При \(n=7\) получаем \(2^7 = 128\) вариантов выбора. При \(n=8\) получаем \(2^8 = 256\) вариантов выбора. ASCII использует 7 бит. Это даёт 128 именованных элементов. Позже были созданы 8-битные наборы с 256 элементами. Такие наборы называются расширенными ASCII .

Что означает ASCII

ASCII расшифровывается как Американский стандартный код для обмена информацией ( ASCII). Он появился в 1960-х годах. Он был разработан для первых принтеров, телетайпов и компьютеров. Каждой букве, цифре, пробелу и некоторым символам он присваивает номер. Кроме того, он присваивает специальные номера таким действиям, как перенос строки . Первая версия использовала 7 бит, поэтому имела номера от 0 до 127.

Что внутри ASCII
Примеры простых карт

Обратите внимание на интересную деталь. Строчные буквы на 32 больше, чем их заглавные пары. Например, \(\;97 - 65 = 32\) . Таким образом, «a» на 32 больше, чем «A». «b» на 32 больше, чем «B», и так далее. Эта закономерность упрощает некоторые компьютерные задачи.

Управляющие символы в простых словах

При нажатии клавиши Enter ваш компьютер может отправить LF, CR или оба символа, в зависимости от системы. Многие интернет-инструменты используют LF. Некоторые старые системы использовали CR и LF вместе.

Десятичные, двоичные и шестнадцатеричные представления

Числа можно записывать разными способами. Десятичная система счисления — это обычный способ счёта, использующий цифры от 0 до 9. В двоичной системе используются только цифры 0 и 1. В шестнадцатеричной системе счисления используются цифры от 0 до 9 и буквы от A до F.

Как в двоичной системе счисления получается 65 для «A»? Посмотрите на биты в числе 01000001. Самый левый бит соответствует 128. Затем идут 64, 32, 16, 8, 4, 2, 1. Включены только 64 и 1. Итак \(01000001_{(2)} = 0\times128 + 1\times64 + 0\times32 + 0\times16 + 0\times8 + 0\times4 + 0\times2 + 1\times1 = 65\) .

С клавиатуры на экран

Нажмите клавишу. Клавиатура отправляет код на компьютер. Система преобразует его в числовой символ. Для многих клавиш это число представляет собой код ASCII. Приложение сохраняет это число в памяти. При отображении текста оно ищет число и рисует букву. При сохранении числа попадают в файл.

Как текст распространяется по сети

Представьте себе сообщение Hi!. Буквы — H, i и !. Их коды ASCII — 72, 105 и 33. В двоичном коде это 01001000, 01101001 и 00100001. Сеть отправляет эти биты. Другая сторона считывает их. Она видит числа. Она снова показывает H, i и !. Так передаются простые текстовые сообщения.

Расширенный ASCII и кодовые страницы

Людям требовалось больше символов. Им нужны были буквы, такие как é, ñ и ø. Им нужны были денежные знаки, такие как €. 7-битный набор содержал всего 128 символов. Поэтому люди использовали 8 бит. С 8 битами мы получаем \(2^8 = 256\) символов. Верхняя половина, от 128 до 255, использовалась для дополнительных букв и символов. Но возникла проблема. Разные группы выбирали разные номера для этих дополнительных букв. Эти варианты называются кодовыми страницами .

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

ASCII и Юникод

Unicode — это крупный стандарт, поддерживающий множество языков, математических символов и эмодзи. Он вмещает более миллиона символов. Существует множество способов хранения Unicode. Один из самых распространённых — UTF-8 .

Сколько байтов использует текст?

В тексте, состоящем только из ASCII-кода, каждый символ занимает один байт. Например, слово «cat» занимает 3 байта. Фраза «hi mom» состоит из 6 символов, включая пробел, поэтому она занимает 6 байтов. Проще говоря, \(\textrm{ASCII-байты} = \textrm{количество символов}\) .

Порядок сортировки с помощью ASCII

Компьютеры часто сортируют строки по номерам символов. Порядок ASCII группирует элементы определённым образом.

Это означает, что при сравнении простых ASCII-значений слово Zoo идёт перед словом Apple . Сортировка производится по номерам, а не по звучанию слов.

Распространенные коды ASCII, которые нужно знать

Обратите внимание, что амперсанд — это &. Его код ASCII — 38. Знак плюс + — это 43. Знак минус - — это 45.

Реальное применение в повседневных технологиях
Шаблоны ASCII, которые помогают
Как можно создавать изображения с помощью ASCII

Люди создают картины, используя только символы. Это называется ASCII-искусство . Вот крошечное лицо, созданное из символов ASCII.

:-) Простая улыбка
(^_^) Дружелюбное лицо
o_O Удивлён

Каждое начертание состоит только из символов, таких как двоеточие, тире и скобки. Никаких цветов или фигур. Только текст.

История вкратце, простыми словами

ASCII развился из телетайпов и первых компьютеров. В 1963 году была принята первая версия. Она помогла множеству различных машин общаться друг с другом. Благодаря единому коду буква, например, A, обозначала одно и то же число везде. Это упростило отправку сообщений и печать текста.

Когда ASCII недостаточно

В кодировке ASCII всего 128 элементов. Этого недостаточно для всех языков. Она не может отображать китайскую, хинди, арабскую и многие другие письменности. Она не может отображать эмодзи. Также она не может отображать многие математические и музыкальные символы. Для этих целей мы используем Unicode. Unicode поддерживает множество письменностей и символов. UTF-8 — это один из способов их хранения. Хорошая новость заключается в том, что весь текст ASCII работает в кодировке UTF-8. Поэтому современные системы легко читают старые кодировки ASCII.

Как приложения обрабатывают ASCII сегодня

Большинство приложений ожидают UTF-8. Но если файл содержит только буквы и символы ASCII, он выглядит так же и в UTF-8. Программистам нравится этот подход, потому что он упрощает работу. Веб-страницы, API и многие инструменты используют UTF-8, который включает ASCII без изменений.

Небольшие факты и понятная математика

ASCII — это 7-битный набор. Это означает до \(2^7 = 128\) различных символов. Расширенный набор с 8 битами содержит \(2^8 = 256\) элементов. Если ваш текст состоит только из символов ASCII, и он содержит \(n\) символов, то он занимает \(n\) байт. В небольшом сообщении, например, OK , \(n = 2\) . Таким образом, при сохранении в формате ASCII или UTF-8 он занимает 2 байта.

Видение скрытых символов

Некоторые элементы ASCII выполняют действия, но не печатаются. Пробел выводится как пустое место. Но LF и CR перемещают курсор. TAB выполняет переход. При открытии файла в специальном редакторе LF может отображаться как \n. Этот символ не является частью ASCII. Это способ, которым редактор показывает вам перенос строки.

Простые примеры, которые кажутся реальными
На что обратить внимание
Как устройства используют ASCII: простые шаги

Представьте себе устройство для печати этикеток, печатающее имена. Оно считывает имя по символам. Оно преобразует каждый символ в ASCII-код. Оно сохраняет эти числа в памяти. Оно печатает буквы, ориентируясь на то, как их нарисовать. Если устройство встречает LF (10), оно переходит на следующую строку перед дальнейшей печатью.

Сравнение трёх способов написания кода одного символа

Взгляните ещё раз на символ «!». Его код можно записать тремя способами. Десятичный: 33. Двоичный: 00100001. Шестнадцатеричный: 21. В математической форме: \(\;33_{(10)} = 00100001_{(2)} = 21_{(16)}\) . Каждая форма представляет собой одно и то же значение. Приложения выбирают нужную им форму. Люди часто читают десятичные числа. Компьютеры любят двоичные числа. Шестнадцатеричный формат — это сокращённый способ чтения двоичных чисел.

Почему ASCII просуществовал так долго

ASCII — это небольшой и понятный код. Он появился одним из первых. На нём построены многие инструменты и протоколы. Поскольку первые 128 кодов Unicode соответствуют ASCII, этот план работает и сегодня. Именно поэтому вы можете открыть очень старые текстовые файлы на новом телефоне или ноутбуке и увидеть те же самые буквы.

Мини-обзор: чтение короткого файла

Откройте файл с текстом Hello . Байты — это числа ASCII 72 101 108 108 111. В двоичном коде это 01001000 01100101 01101100 01101100 01101111. Приложение считывает каждое число и рисует на экране слово Hello. Если следующее число равно 10, оно переходит на новую строку перед тем, как отобразить следующий текст. Вот насколько прост и стабилен этот процесс.

Когда следует выбирать только ASCII
Ключевые символы, которые люди часто используют
Быстрая проверка идей с помощью небольших чисел

Представьте себе число 10. В двоичной системе это 00001010. В десятичной — десять. В ASCII 10 — это LF, символ перевода строки. Это показывает, как одно и то же число может быть представлено по-разному. Смысл зависит от того, как мы используем это число. Если мы говорим, что это код символа, то 10 означает LF. Если мы говорим, что это просто количество яблок, то это десять яблок. Контекст имеет значение.

Объединяем все это еще одним примером

Мы передадим слово «Sun» с одного устройства на другое. Коды: «S» — 83, «u» — 117, «n» — 110. В двоичной системе 83 — это 01010011, 117 — это 01110101, 110 — это 01101110. Биты передаются как сигналы «On» и «Off». Другое устройство преобразует биты обратно в числа. Затем оно преобразует числа в буквы. Оно отображает слово «Sun» . Если следующий код — 32, это пробел. Если следующий код — 33, это «!». Правила каждый раз остаются неизменными. В этом и заключается сила общего кода.

Download Primer to continue