Информатика — курс лекций. Курс лекций для студентов по направлениям 230100. 62 Информатика и вычислительная техника
Скачать 2.08 Mb.
|
Байт Бит — очень мелкая единица, с которой не всегда удобно работать, поэтому для практических нужд вводят более крупные единицы. Например, дибит — это пара битов (композиция из двух со- седних двоичных разрядов) — его информационным содержанием является одно из четырёх разли- чимых состояний. Аналогичны единицы трибит (имеет 8 различимых состояний) и квадробит (16 состояний). Добавление каждого нового бита увеличивает количество различимых состояний системы в два раза. Наиболее устоявшейся единицей представления информации в вычислительной технике является байт. Байт — это композиция из восьми взаимосвязанных битов. В отличие от бита, байт может быть весьма разнообразен по информационному содержанию. Прежде всего, его информационным содержанием является одно из 256 различимых состояний ( ). При кодировании положительных целых чисел информационным содержанием байта является число от 0 до 255. Но поскольку кодировать можно не только целые и не только положи- тельные числа, информационное содержание байта может быть и иным. Например, байт может вы- ражать отрицательное число, букву, цифру, цвет точки, громкость звука и многое другое. Обратите особое внимание на то, что байт — это не группа из восьми последовательных би- тов, а именно композиция. Байт имеет собственное информационное содержание, такое, какого не имеет ни один из входящих в него элементов. Байт — это техническая единица представления информации, связанная с определённым уровнем развития техники. Сегодня байт считается восьмиразрядным, но так было не всегда. В про- шлом существовали компьютеры, в которых данные представлялись семиразрядными и даже ше- 72 стиразрядными байтами. В настоящее время представление о байте как о восьмибитной композиции считается общепринятым, и нет оснований предполагать, что оно может измениться в ближайшем будущем. Производными единицами измерения количества данных являются: килобайт (Кбайт); мегабайт (Мбайт); гигабайт (Гбайт); терабайт (Тбайт). Килобайты часто используют в качестве единиц измерения текстовых данных. Условно счи- тайте, что одна машинописная страница текста соответствует примерно двум килобайтам данных. Мегабайты используют для измерения объёма оперативной памяти компьютеров, в которой размещаются программы и данные во время работы. Обычно он составляет сотни мегабайт. Гигабайты применяют для оценки ёмкости устройств хранения данных. Размеры современ- ных магнитных жёстких дисков, на которых хранятся программы и данные, измеряются сотнями ги- габайт. Терабайты — очень большие единицы. Например, объём текстового содержания всех книг, когда-либо написанных на русском языке, составляет всего лишь несколько терабайт. Однако, если рассматривать не текст, а графику и видео, то терабайт уже не выглядит столь внушительно. Если взять кинофильм и записать числами цвет каждой точки для каждого кадра, то полученный объём данных составит несколько терабайт. Поэтому при цифровой записи кинофильмов используют спе- циальные приемы кодирования данных со сжатием. В результате уплотнения объём данных умень- шается в десятки, а иногда и в сотни раз, что важно как для их хранения, так и транспортировки. Правила записи чисел в различных системах счисления В настоящее время в вычислительной технике используются десятичная, двоичная и шестна- дцатеричная системы счисления. Десятичную систему используют традиционно, а двоичную приме- няют, когда требуется описать логику работы простейших элементов вычислительной техники. Дво- ичной системой активно пользуются системные инженеры — люди, отвечающие за взаимодействие вычислительных устройств друг с другом. Характерный недостаток двоичной системы — низкая выразительность записей. Для челове- ка двоичные последовательности выглядят длинными и непонятными. Кроме того, к недостаткам двоичной записи следует отнести её низкую наглядность. В монотонной последовательности нулей и единиц люди легко путают разряды. Эти недостатки успешно преодолевает шестнадцатеричная система. Поскольку её основание является точной степенью двойки ( ), перевод чисел из двоичной системы в шестнадцатерич- ную легко выполняется в уме, хотя для этого нужна минимальная тренировка. Один разряд шестнадцатеричного числа позволяет выразить сразу четыре бита, то есть целый полубайт. Соответственно, на запись полного байта необходимы всего два шестнадцатеричных раз- ряда. Таким образом, шестнадцатеричная система счисления обеспечивает компактность, вырази- 73 тельность и техническую наглядность записи. Пользуются шестнадцатеричной системой системные программисты — люди, отвечающие за взаимодействие программ с устройствами. В прошлом в вычислительной технике использовалась также восьмеричная система. Как и в шестнадцатеричной системе, её основание является целой степенью двойки ( ), а один разряд позволяет выразить три двоичных бита. В те годы, когда на компьютерах ещё встречались шестираз- рядные байты, три двоичных бита составляли полубайт, и восьмеричная система была актуальной. Сегодня, когда байты повсеместно стали восьмиразрядными, восьмеричная система утратила своё значение и в практических задачах не применяется. Самый универсальный способ обозначения чисел, позволяющий записать число в любой си- стеме счисления, состоит в использовании подстрочных индексов. Значение индекса указывает на основание использованной системы счисления. В то же время, для наиболее распространённых систем счисления существуют и другие со- глашения: если по контексту ясно, что запись сделана в десятичной системе, никаких специальных обо- значений не требуется. При желании классы разрядов можно разделять пробелами; если по контексту не ясно, в какой системе сделана запись, можно использовать обозначение или (от слова decimal — десятичный); ведущие нули в записи чисел не используются. В десятичной системе число всегда начинает- ся со значащей цифры; если по контексту ясно, что запись сделана в двоичной системе счисления, специальных обо- значений не требуется. В длинных двоичных словах байты обычно разделяют пробелами. Для наглядности часто пробелами разделяют и полубайты; ведущие нули в записи байта проставляются всегда; ведущие нули можно не ставить, если речь идет не о байте, а просто о битовой последова- тельности, например: 101. Читается такая последовательность: один — ноль — один (не сто один). Если по контексту не ясно, в какой системе счисления сделана запись, используют обо- значение или (от слова binary — двоичный); шестнадцатеричный разряд способен иметь до 16 различимых значений. Соответственно, для представления его значения необходимы 16 цифр. Первые десять цифр (от 0 до 9) заимству- ются из десятичной системы, а остальные шесть обозначаются буквами латинского алфавита. Независимо от контекста, шестнадцатеричные числа всегда должны иметь специальное обо- значение, например: или (от слова hexadecimal — шестнадцатеричный; в технической документации шестнадцатеричные числа иногда обозначают знаком #; ещё один способ обозначения шестнадцатеричных чисел — начинать их с префикса 0x. Изве- стен также приём записи восьмеричных чисел, начиная с нуля. Ранние системы кодирования текстов В первые двадцать лет своего развития компьютеры служили только для работы с числами. Не случайно в те годы их называли электронными вычислительными машинами. Разумеется, даже самые ранние образцы компьютеров умели печатать данные на бумаге. Однако умение печатать буквы и умение работать с текстами — это далеко не одно и то же. Вплоть до 1963 г. вычислительная техника не имела своих стандартов кодирования текстов. Для ввода и вы- 74 вода текстовых данных использовалось оборудование, заимствованное в телеграфной связи: теле- тайпы и электрические пишущие машинки. Вместе с оборудованием из телеграфии заимствовались и стандарты кодирования символов. Двоичное кодирование текста. Система Бэкона До появления телеграфии существовал лишь один стимул к кодированию текстов — преобра- зование записи в тайнопись. Сегодня этой цели служит не кодирование, а шифрование, но различать эти понятия стали сравнительно недавно. Так что первые приёмы дискретного кодирования текстов имеют свои корни в криптографии. В 1605 г. английский ученый, философ и политический деятель Фрэнсис Бэкон (1561—1626) опубликовал труд под названием «О приумножении наук», в котором впервые предложил двузнач- ную схему шифрования текста. В этой схеме каждая буква английского алфавита обозначалась пяти- символьной группой, составленной из двух знаков. Бэкон демонстрировал работу своей системы на знаках и . Разумеется, можно использовать и любые иные приёмы дискретизации знаков — суть системы от этого не зависит. Всего кодом Бэкона можно представить 32 (2 5 ) различимых письменных знака. Поскольку русский алфавит содержит 33 буквы, то, пожертвовав одной буквой (часто жертвуют буквой Ё), код Бэкона можно продемонстрировать и на русскоязычном тексте. Схема Бэкона не выглядит эффективной, потому что количество знаков исходного сообщения увеличивается в пять раз. Однако цель Бэкона состояла не в том, чтобы сделать текст нечитаемым, а в том, чтобы скрыть сам факт наличия тайнописи. Схема Бэкона не использует цифры, но её вполне можно считать цифровой. Прежде всего, это дискретная система, а в дискретных системах совершенно всё равно, какими знаками пользоваться. Заменив буквы и цифрами 0 и 1, мы получим таблично-цифровую систему пятиразрядного коди- рования. В соответствии с духом своего времени, Бэкон предполагал использовать изобретение для тайнописи. Однако он не упустил из виду возможности применения своей схемы для передачи со- общений с помощью колокольного звона, боевых труб, мушкетных выстрелов и вспышек света. От- мети также, что Бэкон обосновал использование пары различимых сигналов для передачи сообще- ний задолго до того, как Г. Лейбниц (1646—1716) впервые применил двоичную систему для пред- ставления числовых данных. Двоичный код переменной длины. Система Морзе В 1844 г., когда американский изобретатель Сэмюэл Морзе (1791—1872) готовил к запуску первую экспериментальную линию телеграфной связи между Вашингтоном и Балтимором, ему по- требовалась удобная и эффективная система кодирования символов. Альфред Вейл, помогавший Морзе, предложил кодировать передаваемые символы с помощью двух электрических сигналов: длинного (тире) и короткого (точка). В отличие от системы Бэкона, система Морзе несимметрична. В ней разные знаки алфавита кодируются разным количеством элементов (от одного до шести). Чем реже знак встречается в текстах, тем большее количество символов необходимо для его кодирования. Наиболее часто встре- 75 чающиеся буквы E и T в системе Морзе кодируются одним элементом, а такие буквы, как Q и L — че- тырьмя. Система Бодо. Введение управляющих кодов Третья четверть девятнадцатого века — это эпоха пара и телеграфа. Энергия пара позволила людям быстро перемещаться ни большие расстояния. А телеграф позволил им при этом не разры- вать социальные, экономические и культурные связи со своим сообществом. Механизация произ- водственных процессов стала основным содержанием эпохи промышленной революции. Потребовали механизации и телеграфные сети, охватившие к 1870 г. целые континенты. В то время с азбукой Морзе могли работать только подготовленные люди, способные воспринимать точ- ки и тире «на глаз» или «на слух», а бурно развивающаяся экономика настойчиво требовала более простых телеграфных аппаратов. Переменная длина кода, эффективная при передаче сообщений вручную, к середине 70-х го- дов XIX века стала препятствием для механизации телеграфа. Чтобы приёмный аппарат мог без уча- стия оператора различить, где заканчивается один знак и начинается другой, надо либо ввести до- полнительный разделительный элемент, либо кодировать все знаки одинаковым количеством эле- ментов, как предлагал ещё Фрэнсис Бэкон. Технический прогресс избрал второй путь. В 1874 г. Эмиль Бодо во Франции разработал систему, которую назвали «печатающим теле- графом». Передающее устройство имело клавиатуру с пятью клавишами, похожими на фортепиан- ные. Две левые клавиши (IV и V) приводились в действие левой рукой, а три правые (I, II и III) — пра- вой. Приёмное устройство распечатывало на бумажной ленте не точки и тире, как в аппаратах Морзе, а обычный текст. Внедрение системы Бодо имело огромный эффект. Отныне политики, бан- киры и военачальники могли сами читать приходящие сообщения, не посвящая телеграфиста в кон- фиденциальное содержание. Сочетаниями из пяти элементов можно выразить до 32 различных кодов ( ). Бодо раз- местил их в таблице размером . Номер строки определяла одна из четырёх возможных комби- наций клавиш для левой руки (0, IV, V, IV+V), а номер столбца — одна из восьми комбинаций клавиш для право руки (0, I, II, I+II, III, I+III, II+III, I+II+III). В телеграфии необходимо передавать не только буквы, но также цифры и знаки препинания Поэтому 32-символьной таблицы для Бодо было явно не достаточно. В принципе, он мог просто вве- сти шестую клавишу ( ), но это усложнило бы обучение телеграфистов. Бодо решил действо- вать иначе — он ввёл вторую таблицу из 32 кодов. В первой таблице он разместил буквы, а во второй — цифры и знаки препинания. Для переключения между основной и дополнительной таблицами Бодо ввёл так называемые управляющие коды. Они не имеют символьного содержания, а сообщают приёмнику о том, что следующие поступающие символы он должен декодировать по другой табли- це. В XX в. роль управляющих кодов значительно усилилась. В современных таблицах кодирова- ния текстов выделены целые области, в которых размещаются коды, не имеющие текстового содер- жания. Они предназначены исключительно для того, чтобы передатчик мог в какой-то степени управлять приёмником. 76 Система Мюррея. Введение кодов форматирования Аппаратура Бодо заметно упростила получение телеграфных сообщений. Для чтения текстов, принятых аппаратом Бодо, специалист не требовался, однако она мало помогла отправителю. Теле- графный ключ Морзе сменили клавиши, похожие на фортепианные, а потребность в квалифициро- ванном операторе по-прежнему осталась. Для решения этой проблемы в 1901 г. новозеландский журналист Дональд Мюррей предложил использовать в передающем устройстве клавиатуру, заим- ствованную у пишущей машинки. Вместе с клавиатурой у пишущей машинки были позаимствованы две операции: прокрутка листа бумаги на новую строку и возврат каретки. Была также добавлена новая операция — удаление предыдущего символа как ошибочного. Для исполнения этих операций в таблицу кодирования были введены три новых управляющих кода, которых не было в системе Бодо. Эти коды сохранились до наших дней и выполняют функции форматирования текста: код LF (Line Feeding) — код подачи строки; код CR (Carriage Return) — код возврата каретки; код DEL (Delete) — код отмены символа. Система Мюррея была создана ради упрощения ввода текстов, но она повлияла и на их вы- вод. Новые коды форматирования дали возможность печатать принятые сообщения не на длинной ленте, а на листах обычного формата. В 1908 г. эта возможность была реализована в аппаратах ново- го поколения, получивших название телетайпов. Система FIELDDATA. Введение кодов-разделителей. Недостатки системы кодирования Мюррея стали заметны лишь тогда, когда появились пер- вые компьютеры и пришла пора автоматизировать информационный обмен. Первые компьютерные сети были созданы Министерством обороны США в 50-х годах XX в. Они соединяли посты наблюдения за воздушной обстановкой, службы управления воздушным дви- жением, метеорологические службы. Обмен данными между компьютерами должен был проходить автоматически, но кодов телеграфной связи для этого оказалось мало. Так появилась группа военных стандартов под общим названием FIELDDATA, имевших следующие особенности: семиразрядное кодирование с возможностью представления до 128 различимых кодов ( ); наличие кодов не только для прописных, но и для строчных букв английского алфавита; наличие специальных кодов-разделителей данных. Введение в действие кодов-разделителей имело огромное значение для автоматизации ин- формационного обмена. Фактически, с введением специальных кодов-разделителей появилась воз- можность доступа к удалённым базам данных и автоматизации их информационного обмена. Одним из самых ярких проявлений новых возможностей информационного обмена стала электронная поч- та. Примеры простейших кодов-разделителей, реализованных в системе FIELDDATA: SBK (Start of Block) — начало блока данных. Сегодня этот код назвали бы «началом записи». ЕВК (End of Block) — конец блока данных («конец записи»). 77 ЕВЕ (End of Blockette) — конец вложенного блока. Сегодня этот код, разделяющий между со- бой элементы одной записи, назвали бы «концом поля». EOF (End of File) — конец сообщения (конец передачи, конец файла данных). Схема кодирования ASCII Первая попытка стандартизировать коды символов для ЭВМ состоялась в 1963 г. в США, когда была создана первая версия стандарта ASCII (по-русски произносится как «аски»). Система кодирова- ния получилась не совсем удачной, вызвала множество нареканий и вскоре была подготовлена вто- рая, более успешная версия, принятая в 1968 г. Она используется по сей день. Название стандарта расшифровывается как American Standard Code for Information Interchange — Стандартный код внут- реннего информационного обмена США. Его ввёл в действие Национальный институт стандартиза- ции США (ANSI, American National Standard Institute). Таблица ASCII предназначена для семиразрядного кодирования 128 различных символов ( ). Этого достаточно, чтобы представить строчные и прописные буквы английского алфавита, знаки препинания, цифры, знаки математических действий, а также некоторые специальные знаки, например такие, как @, #, § и другие. Первые 32 кода таблицы ASCII (от 0 до 31) не представляются печатными знаками. Эта об- ласть отведена для размещения специальных символов: управляющих кодов (служат для управления удаленными устройствами, например принте- рами); кодов форматирования (служат для специального оформления сообщений); кодов-разделителей (служат для структурирования передаваемых наборов данных). |