Определите объем памяти, необходимый для хранения следующей информации в кодах ascii

Обновлено: 17.05.2024

Символы и строки, а также ASCII

Компьютеры работают с числами. Поэтому им нужен способ для компьютера преобразовывать буквы (и другие «символы») в числа и обратно, чтобы они могли храниться внутри компьютера и управляться компьютером. Используется набор кодов, известный как «ASCII» (американский стандартный код для обмена информацией). Первоначально они были разработаны для таких задач, как отправка документов на принтер, и многие из команд имеют смысл в этом контексте.

Таблица ASCII

<ПР>
  • ASCII — это 7-битный код, представляющий 128 различных символов. Когда символ ASCII хранится в байте, старший бит всегда равен нулю. Иногда дополнительный бит используется, чтобы указать, что байт не является символом ASCII, а является графическим символом, однако это не определяется ASCII.
  • Чтобы преобразовать шестнадцатеричное число с помощью таблицы, возьмите 4 старших бита (строка), за которыми следуют 4 младших бита (столбец); например 0x33 означает 00110011, что является кодом символа 3.
  • Несколько простых правил: десятичные цифры от 0 до 9 представлены кодами 0x30 - 0x39. Заглавные буквы имеют диапазон от 0x41 до 0x5A; соответствующие строчные буквы имеют диапазон от 0x61 до 0x7A; эти два кода идентичны, за исключением одного бита (например, C — 0x43, а c — 0x63; в двоичном коде C — 1000011, а c — 1100011; единственная разница — бит 5.
  • Многие коды вообще не печатают символы; это коды от 0x00 до 0x1F и 0xFF, которые представлены группами букв (NUL, DEL). Некоторые часто используются в тексте; например, LF (перевод строки), который равен 0x0A (что заставляет принтер или дисплей перемещаться вниз на одну строку), и CR (возврат каретки), который равен 0x0D (что часто заставляет принтер или дисплей перемещаться вниз на одну строку и влево). сторона руки). Также есть SP (пробел), равный 0x20; поскольку это соответствует фактическому пробелу в тексте, это можно рассматривать как печать. NUL (ноль) имеет нулевое значение и заставляет принтер или дисплей игнорировать символ. Другие символы когда-то использовались для предоставления информации о сообщениях, например, STX (начало текста, 0x02) и ETX (конец текста, 0x03).
  • Компьютерам часто требуется хранить группы символов (составляя слова или предложения). Группа символов обычно называется «строкой». В языках высокого уровня, таких как «C», конец «строки» обозначается символом NUL (0x00). Поскольку этот символ на самом деле никогда не отображается, можно с уверенностью предположить, что он никогда не будет одним из символов в строке.
  • Преобразование чисел

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

    Предположим, что число, которое нужно напечатать, равно (в двоичном формате) 01101100;

    Первый шаг — преобразовать его в десятичное;

    Ответ — 108;

    Каждая цифра может быть представлена ​​двоично-десятичными кодами 0001, 0000 и 1000

    (шестнадцатеричные значения, конечно, 0x1, 0x0 и 0x8)

    Каждый из этих цифр необходимо преобразовать в собственные коды символов ASCII;

    Они (в шестнадцатеричном формате) 0x31, 0x30 и 0x38:

    В двоичном формате 0110001, 0110000 и 0111000.< /p>

    Это коды, которые отправляются на принтер

    Принтер будет предварительно запрограммирован на распознавание и печать этих кодов как "108".

    Текстовые строки

    Если текст хранится на компьютере, он обычно хранится в виде строки (последовательности символов ASCII, каждый из которых хранится как один байт). В строку могут быть включены такие символы форматирования, как пробел, возврат каретки и перевод строки.

    Необходим какой-то метод для указания длины строки или того, где находится конец строки. Существует два основных метода:

    <УЛ>
  • Первый байт строки — это не символ, а двоичное число, равное количеству символов в строке. Предположим, например, что мы хотим сохранить строку Hello world! Включая пробел между словами, это 12 символов. Затем он будет сохранен (запись двоичного кода в шестнадцатеричном формате) как
    0C 48 65 6C 6C 6F 20 57 6F 72 6C 64 21,
    где 0C — шестнадцатеричное число, представляющее десятичное значение 12.
  • За последним байтом строки следует стандартный байт, означающий "конец строки"; нулевое значение 00 обычно. Во втором методе строка будет храниться как
    48 65 6C 6C 6F 20 57 6F 72 6C 64 21 00
    (поэтому в этом примере для хранения 12 символов используется 13 байтов).
  • Конечно, программист должен знать используемое соглашение. Нет ничего, что отличало бы биты, означающие числа, от битов, означающих буквы и символы; вы должны знать, что эти биты должны означать, прежде чем что-либо с ними делать.

    Второй способ чаще всего используется в программах на C.(см. также пример «свинья»). Обратите внимание, что если вы используете более сложный метод хранения текста (скажем, с помощью программы обработки текстов), где вы хотите сохранить сведения о шрифте или, например, размере символов, вам также потребуется другая информация; но фактическая информация о тексте обычно сохраняется в виде символов ASCII.

    Фактический ввод в компьютерную программу обычно представляет собой набор строк; язык высокого уровня, такой как C, не только имеет множество функций, которые могут обрабатывать такие строки (например, strcat(), strcpy(), len()); но когда он фактически запускает свой компилятор, он использует те же самые функции для чтения в программе, которая представлена ​​в виде последовательности символов ASCII. Некоторые микропроцессоры и компьютерные микросхемы имеют специальные инструкции для эффективной обработки строк символов.

    Раздел 404 Закона Сарбейнса-Оксли (SOX) требует, чтобы все публичные компании установили внутренний контроль и процедуры.

    Закон о защите конфиденциальности детей в Интернете от 1998 года (COPPA) – это федеральный закон, который налагает особые требования на операторов доменов .

    План North American Electric Reliability Corporation по защите критически важной инфраструктуры (NERC CIP) представляет собой набор стандартов.

    Стандарт безопасности данных платежных приложений (PA-DSS) – это набор требований, призванных помочь поставщикам программного обеспечения в разработке безопасных .

    Взаимная аутентификация, также называемая двусторонней аутентификацией, представляет собой процесс или технологию, в которой оба объекта обмениваются данными .

    Экранированная подсеть или брандмауэр с тройным подключением относится к сетевой архитектуре, в которой один брандмауэр используется с тремя сетями .

    Медицинская транскрипция (МТ) – это ручная обработка голосовых сообщений, продиктованных врачами и другими медицинскими работниками.

    Электронное отделение интенсивной терапии (eICU) — это форма или модель телемедицины, в которой используются самые современные технологии.

    Защищенная медицинская информация (PHI), также называемая личной медицинской информацией, представляет собой демографическую информацию, медицинскую .

    Снижение рисков – это стратегия подготовки к угрозам, с которыми сталкивается бизнес, и уменьшения их последствий.

    Отказоустойчивая технология — это способность компьютерной системы, электронной системы или сети обеспечивать бесперебойное обслуживание.

    Синхронная репликация — это процесс копирования данных по сети хранения, локальной или глобальной сети, поэтому .

    Коэффициент усиления записи (WAF) – это числовое значение, представляющее объем данных, передаваемых контроллером твердотельного накопителя (SSD) .

    API облачного хранилища — это интерфейс прикладного программирования, который соединяет локальное приложение с облачным хранилищем.

    Интерфейс управления облачными данными (CDMI) – это международный стандарт, определяющий функциональный интерфейс, используемый приложениями.

    Байты часто используются для хранения отдельных символов в текстовом документе. В наборе символов ASCII каждому двоичному значению от 0 до 127 соответствует определенный символ. Большинство компьютеров расширяют набор символов ASCII, чтобы использовать весь диапазон из 256 символов, доступных в байте. Верхние 128 символов используются для обработки особых вещей, таких как символы с диакритическими знаками в распространенных иностранных языках.

    Вы можете увидеть 127 стандартных кодов ASCII ниже. Компьютеры хранят текстовые документы как на диске, так и в памяти, используя эти коды. Например, если вы используете Блокнот в Windows 95/98 для создания текстового файла, содержащего слова «Четыре балла и семь лет назад», Блокнот будет использовать 1 байт памяти на каждый символ (включая 1 байт на каждый символ пробела между словами). -- символ ASCII 32). Когда Блокнот сохраняет предложение в файле на диске, этот файл также будет содержать 1 байт на символ и на пробел.

    Проведите такой эксперимент: откройте новый файл в Блокноте и вставьте в него предложение "Четыре балла и семь лет назад". Сохраните файл на диск под именем getty.txt. Затем используйте проводник и посмотрите на размер файла. Вы обнаружите, что размер файла на диске составляет 30 байт: по 1 байту на каждый символ. Если вы добавите еще одно слово в конец предложения и сохраните его повторно, размер файла увеличится до соответствующего количества байтов. Каждый символ занимает один байт.

    Если бы вы посмотрели на файл так, как на него смотрит компьютер, вы бы обнаружили, что каждый байт содержит не букву, а число — число — это код ASCII, соответствующий символу (см. ниже). Итак, на диске номера файла выглядят так:

    Посмотрев в таблицу ASCII, вы увидите однозначное соответствие между каждым символом и используемым кодом ASCII. Обратите внимание на использование 32 для пробела — 32 — это код ASCII для пробела. Мы могли бы преобразовать эти десятичные числа в двоичные числа (то есть 32 = 00100000), если бы хотели быть технически правильными — именно так компьютер действительно работает с вещами.

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

    ASCII — это аббревиатура от «Американского стандартного кода для обмена информацией», и из названия можно предположить, что это код, используемый для обмена информацией от машины к человеку или от машины к машине.

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

    Чтобы понять ASCII, сначала нужно знать кодировку символов. Кодирование символов — это процесс присвоения чисел/цифр символам, и эти символы могут быть разных типов, например, графические символы или символы человеческого языка. Он используется для хранения, передачи или управления данными с помощью компьютеров.


    Кодировка символов выполняется для того, чтобы компьютеры могли интерпретировать и обрабатывать символы. Например, мы можем предположить некоторые числа и присвоить их алфавитам. Существует 26 алфавитов, и давайте присвоим число от 1 до 26 всем заглавным алфавитам, это означает, что мы закодировали символы/алфавиты, присвоив им число.

    В приведенной выше таблице буквам L, I, N, U и X присвоены 12, 9, 14, 21 и 24 числа соответственно. Теперь компьютерам будет проще расшифровывать и печатать символы. Но чтобы охватить все символы английского языка, Американская ассоциация стандартов (NSA) выпустила первую версию ASCII в 1963 году. ASCII был одним из первых стандартов, созданных для компьютерного обмена информацией.

    Почему кодировка ASCII важна

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


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

    Стандартная таблица ASCII

    Стандартная таблица ASCII является 7-битной и содержит символы с кодами ASCII в диапазоне от 0 до 127. Стандарт ASCII используется, поскольку компьютер не может напрямую хранить какие-либо символы и не может преобразовывать их в двоичные числа. Используя ASCII, компьютер узнает о символах, поэтому эти ASCII затем преобразуются компьютером в двоичные цифры.

    Знакомство с таблицей ASCII

    Чтобы найти значение ASCII любого символа, необходимо обратиться к стандартной таблице ASCII, как показано ниже:

    Описание таблицы создается автоматически

    Значение ASCII "A" будет равно 65, а "&" – 38. Точно так же для фигурных скобок "< >" будут использоваться 123 и 125 символов ASCII.

    Давайте рассмотрим пример слова «Linux» и того, как оно хранится в памяти:


    Поскольку компьютер не распознает символы, поэтому ASCII присваивает номер всем символам, и соответствующее двоичное значение сохраняется на жестком диске. Слово «Linux» будет сохранено в памяти в двоичном формате, как показано на изображении выше. ASCII помогает в записи и чтении соответствующих данных символов из памяти.

    Существует 128 символов, и каждому символу присвоен номер ASCII. Давайте разделим таблицу на две категории, чтобы лучше понять ее:

    • Управляющие символы
    • Печатные символы

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

    Символы ASCII от 0 до 32 и 127 являются управляющими символами; их также называют непечатными персонажами или NPC. Как следует из названия, управляющие символы управляют размещением печатных символов или используются для управления устройствами, подключенными к компьютеру.

    Некоторые управляющие символы связаны с клавишами клавиатуры. Например, клавиша возврата; когда вы нажимаете клавишу, эффект может отображаться на экране, но он не печатает никаких символов.

    Аналогичным образом, для связи с компьютером для окончания или начала любого текста используются ASCII для соответствующих символов. Эти управляющие символы сообщают компьютеру, как запустить код и распечатать результат.

    Таблица всех управляющих символов:


    Печатные символы в таблице ASCII

    Печатные символы — это те символы, которые визуально отображаются на экране, такие как все буквы алфавита, цифры, символы и операторы. Печатный символ можно дополнительно классифицировать как:

    Числа и символы включают все числовые значения от 0 до 9 и такие символы, как операторы сложения и вычитания, а категория «Алфавиты» включает все буквы английского алфавита с прописными и строчными буквами.

    Числа и символы

    Эта часть содержит символы и имеет коды ASCII от 32 до 64, от 91 до 96 и от 123 до 126. Эти символы включают математические операторы (+, -, * ,/) и знаки препинания.


    Например, код ASCII косой черты «/» будет равен 47, а для добавления «+» — 43.

    Алфавиты

    Последняя часть стандартной таблицы ASCII — это 26 алфавитов, и существуют отдельные ASCII-коды для прописных и строчных букв. Коды ASCII от 65 до 90 включают все буквы верхнего регистра, а символы от 97 до 122 включают все буквы нижнего регистра.


    Например, ASCII заглавной "О" и маленькой "о" будет 79 и 111 соответственно.

    Заключение

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

    Об авторе

    Талья Саиф Малик

    Талья является участником Linux Hint и стремится приносить пользу и делать полезные вещи для всего мира. Он любит читать, писать и говорить о Linux, данных, компьютерах и технологиях.

    Однако сегодня, работая с сетевыми протоколами и сетевым программированием, вы столкнетесь с множеством схем кодирования данных и символов.

    В этом руководстве мы рассмотрим основные схемы кодирования, используемые на компьютерах, а во второй части руководства мы рассмотрим, как данные передаются по сети.

    Символы, целые числа, числа с плавающей точкой и т. д.

    При хранении и передаче данных вам необходимо будет представлять следующие типы данных:

    • Символы и цифры, например A и 1
    • Длинные (32 бита) и короткие (16 бит) целые числа со знаком и без знака
    • Одинарное и двойное число с плавающей запятой
    • Логическое значение, т. е. True и False

    Так как же компьютер запоминает букву А или цифру 1?

    Как компьютер запоминает число вроде 60101? или 62.0101?

    Как передать букву А и т. д. на другой компьютер по сети?

    Компьютеры и кодировка символов

    Чтобы сохранить текст в виде двоичных данных, необходимо указать кодировку для этого текста.

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

    Пока данные остаются на компьютере, совершенно неважно, как они закодированы.

    Однако для передачи данных между системами необходимо использовать стандартную схему кодирования.

    В 1968 году ASCII (Американский стандартный код для обмена информацией) был принят в качестве стандарта кодирования текста для обмена данными.

    ASCII

    ASCII – это американский стандарт, разработанный для кодирования английских символов и знаков препинания, которые использовались на пишущих машинках и телетайпах того времени (1960-е годы).

    ASCII использует 8 бит, хотя на самом деле используется только 7 бит.

    Поскольку кодировка ASCII была разработана во время эксплуатации устройств телетайпа, она также содержит управляющие коды, предназначенные для управления устройством телетайпа.

    В таблице ниже представлены сводные данные о распределении кодов.

    Таблица ASCII – сводка кодов

    Расширения ASCII

    Поскольку ASCII не может кодировать такие символы, как знак фунта £, или общие символы немецкого и других европейских языков, были разработаны различные расширения.

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

    Наиболее распространенными являются Windows 1252 и Latin-1 (ISO-8859).

    Windows 1252 и 7-битная кодировка ASCII были наиболее широко используемыми схемами кодирования до 2008 года, когда UTF-8 стал наиболее распространенным.

    ISO-8859-1,ISO-8859-15, Latin-1

    ISO-8859 — это 8-битная кодировка символов, которая расширяет 7-битную схему кодирования ASCII и используется для кодирования большинства европейских языков. Подробнее см. вики.

    ISO-8859-1, также известный как Latin-1, является наиболее широко используемым, поскольку его можно использовать для большинства распространенных европейских языков, например немецкого, итальянского, испанского, французского и т. д.

    Она очень похожа на схему кодирования Windows-1252, но не идентична, см. Сравнение символов в Windows-1252, ISO-8859-1, ISO-8859-15

    Юникод

    В связи с необходимостью кодирования символов иностранных языков и других графических символов был разработан набор символов Unicode и схемы кодирования.

    Самые распространенные схемы кодирования:

    UTF-8 – это наиболее часто используемая схема кодирования, используемая в современных компьютерных системах и компьютерных сетях.

    Это схема кодирования переменной ширины, разработанная для полной обратной совместимости с ASCII. Он использует от 1 до 4 байт. – вики

    Наборы символов и схемы кодирования

    Разница между ними не всегда ясна, и термины, как правило, используются взаимозаменяемо.

    Набор символов — это список символов, а схема кодирования — это то, как они представлены в двоичном формате.

    Это лучше всего видно с Unicode.

    Схемы кодирования UTF-8, UTF-16 и UTF-32 используют набор символов Unicode, но кодируют символы по-разному.

    ASCII – это набор символов и схема кодирования.

    Знак порядка байтов (BOM)

    Знак порядка байтов (BOM) — это символ Unicode, U+FEFF, который появляется как магическое число в начале текстового потока и может сигнализировать программе, потребляющей текст, о нескольких вещах: –Wiki

    • Порядок байтов или порядок следования байтов в текстовом потоке;
    • Тот факт, что кодировка текстового потока — Unicode, с высокой степенью достоверности;
    • Какой Unicode кодирует текстовый поток.

    Спецификация различается для текста в кодировке UTF-8, UTF-16 и UTF-32

    Следующая таблица, взятая из Wiki, показывает это.

    bom-table- пример

    Спецификации и текстовые редакторы

    Как правило, большинство редакторов правильно обрабатывают спецификацию, и она не отображается.

    Программное обеспечение Microsoft, такое как Блокнот, добавляет спецификацию при сохранении данных в кодировке UTF-8 и не может интерпретировать текст без спецификации, если он не является чистым ASCII.

    Пример спецификации

    Ниже приведен вывод простой программы на Python, которая отображает содержимое файла, содержащего символы TEST (4 символа), сохраненные в виде ASCII, UTF-8, UTF-16-BE и UTF-16-LE

    BOM-example

    Распространенные вопросы и ответы

    В. Как узнать, какую кодировку символов использует файл?

    A- Обычно это не так, но некоторые текстовые редакторы, такие как notepad++, отображают кодировку. Если вы получили файл, закодированный с помощью кодировки, отличной от ожидаемой, вы можете получить сообщение об ошибке при попытке его чтения.

    В. Мой файл в формате ASCII, но он нормально декодируется с помощью декодера UTF-8. Почему?

    A- Потому что UTF-8 обратно совместим с ASCII.

    Целые числа и числа с плавающей запятой — Big и Little Endian

    Примечание. Поскольку в кодировках UTF-16 и UTF-32 используются 2-байтовые или 4-байтовые целые числа, к кодированию текста с их использованием применяется следующее

    Количество байтов, выделенных для целого числа или числа с плавающей запятой, зависит от системы.

    Пункт Tutorials описывает это для языка программирования C, и я буду использовать его для иллюстрации

    Если мы возьмем короткое целое как 2 байта, а длинное целое как 4 байта.

    Поскольку они используют несколько байтов, возникает несколько вопросов:

    • Какой байт представляет старшую часть числа?
    • При сохранении в памяти, какой байт сохраняется первым
    • При отправке по сети какой байт отправляется первым.

    Окончание байтов относится к последовательному порядку, в котором байты упорядочиваются в более крупные числовые значения при сохранении в памяти или при передаче по цифровым каналам связи.
    Окончание байтов представляет интерес в информатике, потому что два конфликтующих и несовместимых формата широко используются: слова могут быть представлены в формате с прямым порядком байтов или прямым порядком байтов, в зависимости от того, упорядочены ли биты, байты или другие компоненты от большого конец (самый значащий бит) или маленький конец (наименьший значащий бит).
    В формате с обратным порядком байтов всякий раз, когда адресуется память или отправляются/сохраняются слова побайтно, старший значащий байт — байт, содержащий старший значащий бит — сохраняется сначала (имеет младший адрес) или отправляется первым, затем следующие байты сохраняются или отправляются в порядке убывания значимости, причем младший байт — тот, который содержит младший значащий бит — сохраняется последним (имеет самый высокий адрес) или отправляется последним.

    Вики

    int- Пример кодирования байтов

    На приведенном ниже рисунке с использованием python показано целое число 16, представленное в виде 4 байтов, с использованием порядка байтов с прямым и обратным порядком байтов.

    Сетевой порядок байтов и системный порядок байтов

    Сетевой порядок байтов – это порядок расположения байтов при отправке данных по сети. ( TCP/IP обычно имеет формат Big Endian ).

    Это означает, что старший байт отправляется первым.

    Системный порядок байтов или порядок байтов на хосте — это способ размещения байтов при сохранении в памяти на хост-системе.

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