Представление данных в ЭВМ: двоичное кодирование информации. Open Library - открытая библиотека учебной информации Представление данных эвм

Единицы измерения количества и объема информации.

N – формула Хартли.

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

Количество информации.

Поскольку каждый бит может принимать одно из двух значений (0 или 1), то последовательность из i – битов может принимать N=2 ͥ различных значений => для любого N – значного алфавита (т.е.состоящего из N знаков), количество бит кот. требуется для представления любого из этих знаков, вычисляется по формуле: i = log2 N. Эта величина принимается в качестве количества информации, содержащейся в сообщении, состоящем из одного знака N-значного алфавита. Мощность – количество знаков в алфавите. Из формулы Хартли следует, что количество информации, содержащейся в сообщении, состоящем из М-знаков (m-разрядное сообщение), когда каждый знак равновероятно взят из алфавита мощностью N равно i = m*log2 N.

Например:

В слове ИНФОРМАТИКА 11 знаков, т.е. m=11. Если используется 32-значный алфавит, то получаем: i=11* log2 32 = 11*5 = 55.

Объём информации.

В отличие от количества, объём информации, записанный двоичными знаками в памяти компьютера или на внешнем носителе, вычисляется по количеству требуемых для такой записи двоичных знаков. Обычно в качестве наименьшей единицы измерения объёма информации используется байт, состоящий из 8 бит => каждый байт может принимать 256 (2^8) различных значений, при этом наименьшим будет 00000000, а наибольшим 11111111. Байты объединяются в более крупные наборы в зависимости от цели использования (ввод, вывод и другие). Для измерения объёма памяти используются и более крупные единицы измерения (Кб, Мб и Гб). Переход от меньшей единицы измерения к большей осуществляется с помощью коэффициента 2^10 = 1024.

1 Кб = 1024 байта

1 Мб = 1024 Кб

1 Гб = 1024 Мб

Для измерения памяти большего объема используют Терабайт (Тб) = 1024 Гб; и Петабайт (Пб) = 1024 Тб.

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


Системы счисления.

Число – это знак, обозначающий определенное количество чего-либо.

Такие знаки записываются на основании правил, которые составляют систему счисления. Числа записываются с помощью специальных, отличных друг от друга знаков, которые называют цифрами. Существуют различные системы (непозиционные и позиционные). В непозиционных системах смысл каждой цифры не зависит от её расположения в числе.

Например:

В Римской системе V-пять, L-пятьдесят, X-десять. Недостатком таких систем является сложность записи чисел и отсутствие стандартных правил.

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

Например:

Число это последовательность коэффициентов при степенях числа 10. Число 10 называется основанием десятичной системы счисления. Если в качестве основания задать другое число, то получим другую систему счисления.

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

(10.10.2012 г.)

Например, рассмотрим представление чисел в 16-ричной системе счисления. Тогда основание равно 16. Цифры: первые десять цифр (от 0 до 9) мы можем позаимствовать из 10-ричной системы счисления, остальные шесть цифр, соответствующих числовым значениям от 10 до 15 обозначим A, B, C, D, E, F. При этом A = цифра 10, B = цифра 11 и т.д. F = цифра 15. Мы вынуждены сделать такое обозначение в связи с тем, что нельзя цифры обозначать с помощью с помощью других цифр.

Арифметические действия в любой системе счисления выполняется аналогично тому, как это делается в десятеричной системе, следует лишь учитывать величину основания. Например: 15+14=31 (восьмеричная система счисления). В компьютере все данные представляются в двоичной системе счисления. Например:

Четырьмя битами можно представить 16 десятичных чисел (от 0 до 15). В качестве краткой записи при просмотре или изменении двоичных данных используется 16-ричная система счисления. Программы , обеспечивающие «непосредственную» работу человека с данными, хранящимися в памяти компьютера, при взаимодействии с человеком автоматически преобразовывают двоичное представлении данных в 16-ричное и обратно.

Любое данное, записанное в одном байте представляется двумя 16-ричными цифрами, первая из которых соответствует первой четверки битов, а вторая – второй четверки битов. В этом и состоит причина использования 16-ричной системы.

Вся информация в ЭВМ хранится в виде наборов бит, то есть комбинаций 0 и 1. Числа представляются двоичными комбинациями в соответствии с числовыми форматами, принятыми для работы в данной ЭВМ, а символьный код устанавливает соответствие букв и других символов двоичным комбинациям.

Для чисел имеется три числовых формата:

    двоичный с фиксированной точкой;

    двоичный с плавающей запятой;

    двоично-кодированный десятичный (BCD).

В двоичном формате с фиксированной точкой числа могут быть представлены без знака (коды) или со знаком. Для представления чисел со знаком в современных ЭВМ в основном применяется дополнительный код. Это приводит к тому, что, как показано ранее, отрицательных чисел при заданной длине разрядной сетки можно представить на одно больше, чем положительных. Хотя операции в ЭВМ осуществляются над двоичными числами, для записи их в языках программирования, в документации и отображения на экране дисплея часто используют более удобное восьмеричное, шестнадцатеричное и десятичное представление.

В двоично-кодированном десятичном формате каждая десятичная цифра представляется в виде 4 битного двоичного эквивалента. Существуют две основные разновидности этого формата: упакованный и неупакованный. В упакованном BCD-формате цепочка десятичных цифр хранится в виде последовательности 4-битных групп. Например, число 3904 представляется в виде двоичного числа 0011 1001 0000 0100. В неупакованном BCD-формате каждая десятичная цифра находится в младшей тетраде 8-битной группы (байте), а содержимое старшей тетрады определяется используемой в данной ЭВМ системой кодирования, и в данном случае несущественно. То же число 3904 в неупакованном формате будет занимать 4 байта и иметь вид:

xxxx0011 xxxx1001 xxxx0000 xxxx0100 .

Числа с плавающей запятой обрабатываются на специальном сопроцессоре (FPU - floating point unit), который, начиная с МП I486, входит в состав БИС микропроцессора. Данные в нем хранятся в 80-разрядных регистрах. Управляя настройками сопроцессора, можно изменять диапазон и точность представления данных этого типа (таблица 14.1 ).

Таблица 14.1.

Тип данных

Размер (бит)

Диапазон

Обрабатывающий блок

Целые без знака

1 двойное слово

Целые со знаком

1 двойное слово

2147483648...+2147483647

1 учетверенное слово

Числа с плавающей запятой

действительное число

с двойной точностью

≈(0.18*10 309)

с увеличенной точностью

≈(0.12*10 4933)

Двоично-десятичные числа

1 байт неупакованное

1 байт упакованное

10 байт упакованное

0...(99...99) 18цифр

Организация оперативной памяти

ОП является основной памятью для хранения информации. Она организована как одномерный массив ячеек памяти размером в 1 байт. Каждый из байтов имеет уникальный 20 битный физический адрес в диапазоне от 00000 до FFFFFh (здесь и далее для записи адресов используется шестнадцатеричная система счисления, признаком которой является символ h в конце кода). Таким образом, размер адресного пространства ОП составляет 2 20 = 1Мбайт. Любые два смежных байта в памяти могут рассматриваться как 16-битовое слово. Младший байт слова имеет меньший адрес, а старший - больший. Так шестнадцатеричное число 1F8Ah, занимающее слово, в памяти будет расположено в последовательности 8Ah, 1Fh. Адресом слова считается адрес его младшего байта. Поэтому 20 битовый адрес памяти может рассматриваться и как адрес байта, и как адрес слова.

Команды, байты и слова данных можно размещать по любому адресу, что позволяет экономить память вследствие ее более полного заполнения. Однако для экономии времени выполнения программ целесообразно размещать слова данных в памяти, начиная с четного адреса, так как микропроцессор передает такие слова за один цикл работы шины. Слово с четным адресом называется выровненным по границе слов. Невыровненные слова данных с нечетным адресом допустимы, но для их передачи требуется два цикла шины, что снижает производительность ЭВМ. Заметим, что необходимое количество циклов считывания слова данных инициируется микропроцессором автоматически. Следует иметь в виду, что при операциях со стеком слова данных должны быть выровнены, а указатель стека инициирован на четный адрес, так как в таких операциях участвуют только слова данных.

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

Адресное пространство ОП делится на сегменты. Сегмент состоит из смежных ячеек ОП и является независимой и отдельно адресуемой единицей памяти, которая в базовой архитектуре персональной ЭВМ имеет фиксированную емкость 2 16 = 64К байт. Каждому сегменту назначается начальный (базовый) адрес, являющийся адресом первого байта сегмента в адресном поле ОП. Значение физического адреса ячейки складывается из адреса сегмента и смещения ячейки памяти относительно начала сегмента (внутрисегментное смещение). Для хранения значений адреса сегмента и смещения используются 16-битовые слова.

Чтобы получить 20-битовый физический адрес, микропроцессор автоматически осуществляет следующие операции. Значение базового адреса сегмента умножается на 16 (сдвиг на 4 разряда влево) и суммируется со значением смещения в сегменте (рис. 14.3 ). В результате получается 20-битовое значение физического адреса. При суммировании может возникнуть перенос из старшего бита, который игнорируется. Это приводит к тому, что ОП оказывается как бы организованной по кольцевому принципу. За ячейкой с максимальным адресом FFFFFh следует ячейка с адресом 00000h.

Рис. 14.3. Схема получения физического адреса

Сегменты физически не привязаны к конкретному адресу ОП, и каждая ячейка памяти может принадлежать одновременно нескольким сегментам, так как базовый адрес сегмента может определяться любым 16-битовым значением. Сегменты могут быть смежными, неперекрывающимися, частично или полностью перекрывающимися. Вместе с тем, в соответствии с алгоритмом вычисления физического адреса, начальные адреса сегментов всегда кратны 16.

Логические и арифметические основы и принципы работы ЭВМ

Литература : версия для печати

Учебники к курсу

    Гуров В.В., Чуканов В.О. Основы теории и организации ЭВМ

    Варфоломеев В.А., Лецкий Э.К., Шамров М.И., Яковлев В.В. Архитектура и технологии IBM eServer zSeries Интернет-университет информационных технологий - ИНТУИТ.ру, 2005

    Богданов А.В., Корхов В.В., Мареев В.В., Станкова Е.Н. Архитектуры и топологии многопроцессорных вычислительных систем Интернет-университет информационных технологий - ИНТУИТ.ру, 2004

    Новиков Ю.В., Скоробогатов П.К. Основы микропроцессорной техники Интернет-университет информационных технологий - ИНТУИТ.ру, 2006

Список литературы

    Аванесян Г.Р., Лёвшин В.П. Интегральные микросхемы ТТЛ, ТТЛШ: Справочник М.: Машиностроение, 1993

    Атовмян И.О. Архитектура вычислительных систем М.: МИФИ, 2002

    Борковский А. Англо-русский словарь по программированию и информатике (с толкованиями) М.: Русский язык, 1990

    Бродин В.Б., Шагурин И.И. Микропроцессор i486.Архитектура, программирование, ин­терфейс М.:ДИАЛОГ-МИФИ,1993

    Гуров В.В. Синтез комбинационных схем в примерах М.: МИФИ, 2001

    Гуров В.В., Ленский О.Д., Соловьев Г.Н., Чуканов В.О. Архитектура, структура и организация вычислительного процесса в ЭВМ типа IBM PC М.: МИФИ, 2002. Под ред. Г.Н. Соловьева

    Каган Б.М. Электронные вычислительные машины и системы М.: Энер­го­атом­из­дат, 1991

    Казаринов Ю.М., Номоконов В.Н., Подклетнов Г.С. и др. Микропроцессорный ком­п­лект К1810: Структура, программирование, применение М.: Высшая школа, 1990. Под ред. Ю.М. Казаринова

    Корнеев В.В., Киселев А.В. Современные микропроцессоры М.: Нолидж, 1998

    Лю Ю-Чжен, Гибсон Г. Микропроцессоры семейства 8086/8088 М.:Радио и связь, 1987

    Майоров С.А., Новиков Г.И. Структура электронных вычислительных машин Л.: Машиностроение, Ленингр.отд-ие, 1979

    Никитин В.Д., Соловьев Г.Н. Операционнные системы М.:Мир, 1989

    Савельев А.Я. Прикладная теория цифровых автоматов М.: Высшая школа, 1987

    ГОСТ 15133-77. Приборы полупроводниковые, термины и определения

    ГОСТ 17021-75.Микроэлектроника, термины и определения

Логические и арифметические основы и принципы работы ЭВМ

Предметный указатель : версия для печати

ПОСТРАНИЧНО I А Б В Д З И К Л М Н О П Р С Т У Ф Ц Ч Ш Э

автомат Неймана

10 (1 ),

автомат Тьюринга

10 (1 ),

2 (1 , 2 , 3 , 4 ),

Кроме обычной алгебры существует специальная, основы которой были заложены английским математиком XIX века Дж. Булем. Эта алгебра занимается так называемым исчислением высказываний.

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

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

... лекция 2, страница 1 »

12 (1 ), 14 (1 , 2 ),

аргумент

2 (1 , 2 , 3 ),

быстродействие

1 (1 , 2 ),

Быстродействие характеризуется задержкой распространения сигнала, вносимой одним элементарным элементом (конъюнктором, дизъюнктором и т. д.). ... лекция 1, страница 1 »

дешифратор адреса

12 (1 ),

диаграмма Вейча

4 (3 , 4 ),

дизъюнкция

2 (3 , 4 ),

Это сложное высказывание истинно тогда, когда истинно хотя бы одно высказывание, входящее в него. ... лекция 2, страница 4 »

запоминающее устройство

10 (2 ),

Запоминающее устройство, или память – это совокупность ячеек, предназначенных для хранения некоторого кода. Каждой из ячеек присвоен свой номер, называемый адресом... лекция 10, страница 2 »

импликантная матрица

4 (2 ),

Составляется импликантная матрица, колонки которой именуются конституентами единицы, а строки – простыми импликантами. ... лекция 4, страница 2 »

инверсия

2 (3 ),

инвертор

13 (1 ),

Квайн-Мак-Класки

4 (2 ),

кодирование команд

11 (1 , 2 ),

конъюнкция

2 (3 , 4 ),

Функция конъюнкции истинна тогда, когда истинны одновременно оба высказывания. ... лекция 2, страница 4 »

косвенная адресация

11 (2 ),

мантисса

7 (2 ),

машина Тьюринга

10 (1 ),

машинная бесконечность

9 (3 ),

микропроцессор

14 (1 , 2 ),

минимизация

3 (2 , 3 ),

При минимизации ФАЛ стремятся получить форму, в которой будет меньше букв, чем в исходной. По отношению к ДНФ эта форма называется сокращенной (Сок. ДНФ).

Смысл построения Сок. ДНФ заключается в том, что в нее входят такие элементарные произведения, которые своими единицами покрывают не одну единицу исходной функции, а несколько.

... лекция 3, страница 2 »

неполностью определенная функция

5 (1 ),

Неполностью определенной функцией является такая переключательная функция, значения которой на некоторых наборах аргументов могут быть произвольными (т.е. равными "0" или "1"). ... лекция 5, страница 1 »

обратный код

7 (5 ),

Обратным называется код, для которого в знаковом разряде положительного числа пишется "0", в цифровых - модуль числа, а для отрицательного - в знаковом разряде пишется единица, в цифровых - инвертированные разряды исходного числа. ... лекция 7, страница 5 »

однородность

6 (1 ),

12 (1 ),

относительная адресация

11 (2 ),

6 (2 , 3 , 4 ),

персональная ЭВМ

14 (1 , 2 ),

плотность упаковки

1 (1 ),

Важный показатель – плотность упаковки, количество единиц элементов, приходящихся на 1см 3 . ... лекция 1, страница 1 »

7 (2 ),

прямая адресация

11 (2 ),

прямой код

7 (4 , 5 ),

6 (1 , 2 , 3 ),

регистр адреса

12 (1 ),

регистр команд

12 (1 ),

регистровая память

14 (1 ),

сдвиг делителя

9 (1 ),

3 (1 , 2 , 3 ),

14 (1 , 2 ),

2 (1 , 2 ),

система счисления

6 (1 , 2 , 3 , 4 ),

Способ представления изображения произвольных чисел с помощью некоторого конечного множества символов назовем системой счисления. ... лекция 6, страница 1 »

способ адресации

11 (2 ),

сумматор

13 (2 ),

счетчик команд

12 (1 ),

точность

7 (1 , 2 ),

управляющий сигнал

12 (1 ),

физический адрес

14 (2 ),

фиксированная запятая

7 (1 , 2 , 4 ),

2 (1 , 2 , 3 , 4 ),

число с плавающей запятой

14 (2 ),

штрих Шеффера

5 (3 ),

элемент Неймана

10 (1 ),

Элемент Неймана (ЭН) – это устройство, которое на каждом такте пребывает в одном из конечного числа состояний r i R, образующих его алфавит... лекция 10, страница 1 »

ПОСТРАНИЧНО I А Б В Д З И К Л М Н О П Р С Т У Ф Ц Ч Ш Э

5.1 Проблемы представления данных

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

Если для построения ЭВМ выбрана десятичная система счисления, то таких состояний должно быть десять. Для восьмеричной системы счисления таких состояний должно быть 8, для шестнадцатеричной - 16 и т.д. Число состояний всегда должно быть равно основанию системы счисления.

Естественно, такое количество состояний вызывает трудности при их реализации.

В середине сороковых годов прошлого столетия группа математиков, в которую входил и фон Нейман, предложила использовать для представления информации в ЭВМ двоичную систему счисления.

Для двоичной системы счисления устойчивых состояний должно быть два (грубо говоря - выключатель включен (этому состоянию логически соответствует 1) и выключатель выключен (этому состоянию логически соответствует 0).

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

Простота технической реализации двухпозиционных элементов обеспечила наибольшее распространение в ЭВМ двоичной системы счисления.

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

Любая информация представляется в ЭВМ в виде двоичных кодов. Отдельные элементы двоичного кода, принимающие значение 0 или 1 называются разрядами или битами.

n

Хранит информацию блок машины называемой памятью. Условно блок памяти изобразим прямоугольником. Память делится на байты. Наименьшей неделимой единицей информации, которой можно присвоить адрес является байт(в современных ЭВМ под байт отводят 8 разрядов). Номера начинаются с нуля и заканчиваются некоторым числом «n». Значение n зависит от типа ЭВМ.

Память хранит:

n данные (так называемая область данных)

n программы (область программ)

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

Память «начинается» системной областью и «заканчивается» системной областью.

Итак, память подразделяется на ячейки(разрядные сетки) обратиться к которым можно по их адресам.

Каждый байт памяти подразделяется на разряды или биты.

Условно разрядную сетку можно изобразить в виде узкого прямоугольника с делениями для разрядов (битов).

M

Разрядная сетка

Каждому разряду (биту) соответствует один физический элемент. Логически это 1, либо 0.

Представление числовой информации в памяти ЭВМ неразрывно связано с таким понятием современных проблемно – ориентированных языков, как тип данных. Современные языки достаточно строго отслеживают тип переменных, которые используются в программе. Тип переменной определяет возможный набор значений данной переменной, размер её внутреннего представления и множество операций, которые могут выполняться над переменной. Для числовых значений существенным моментом является диапазон допустимых значений.

Понятие типа данных носит двойственный характер. С точки зрения размерности микропроцессор аппаратно поддерживает следующие основные типы данных:

Байт - восемь последовательно расположенных битов, пронумерованных от 0 до 7, при этом бит 0 является самым младшим значащим битом.

Двойной байт (слово в 16/32-битной архитектуре)- последовательность из двух байт, имеющих последовательные адреса. Размер слова - 16 бит; биты в слове нумеруются от 0 до 15. Байт, содержащий нулевой бит, называется младшим байтом, а байт, содержащий 15‑й бит - старшим байтом. Микропроцессоры Intel имеют важную особенность - младший байт всегда хранится по меньшему адресу. Адресом двойного байта считается адрес его младшего байта. Адрес старшего байта может быть использован для доступа к старшей половине двойного байта.

Полуслово - последовательность из четырех байт (32 бита), расположенных по последовательным адресам. Нумерация этих бит производится от 0 до 31. Двойной байт, содержащий нулевой бит, называется младшим двойным байтом, а двойной байт, содержащий 31-й бит - старшим двойным байтом. Младший двойной байт хранится по меньше­му адресу. Адресом полуслова считается адрес его младшего байта. Адрес старшего двойного байта может быть использован для доступа к старшей половине полуслова.

Слово (тип, резрядность которого соответствует разрядности архитектуры)- последовательность из восьми байт, имеющих последовательные адреса. Размер слова - 64 бита; биты в слове нумеруются от 0 до 63. Полуслово, содержащее нулевой бит, называется младшим полусловом, а полуслово, содержащее 63-й бит - старшим полусловом. Микропроцессоры Intel имеют важную особенность - младшее полуслово всегда хранится по меньшему адресу. Адресом слова считается адрес его младшего байта. Адрес старшего полуслова может быть использован для доступа к старшей половине слова.

Двойное слово - последовательность из шестнадцати байт (128 бита), расположенных по последовательным адресам. Нумерация этих бит производится от 0 до 127. Слово, содержащее нулевой бит, называется младшим словом, а слово, содержащее 127-й бит, - старшим словом. Младшее слово хранится по меньшему адресу. Адресом двойного слова считается адрес его младшего слова. Адрес старшего слова может быть использован для доступа к старшей половине двойного слова.

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

Целый тип без знака - двоичное значение без знака, размером 8, 16, 32, 64 или 128бит.

  • байт - от 0 до 255;
  • два байта - от 0 до 65 535;
  • полуслово - от 0 до 232–1;
  • слово - от 0 до 264–1;
  • двойное слово - от 0 до 2128–1.

Целый тип со знаком - двоичное значение со знаком, размером 8, 16, 32, 64 или 128бит. Знак в этом двоичном числе содержится в старшем бите.

Числовые диапазоны для этого типа данных следующие:

  • 8-разрядное целое - от -128 до +127;
  • 16-разрядное целое - от -32 768 до +32 767;
  • 32-разрядное целое - от -231 до +231 – 1;
  • 64-разрядное целое - от -263 до +263 – 1;
  • 128-разрядное целое - от -2127 до +2127 – 1.

Действительный тип кодирует действительное число в экспоненциальной форме:

Закодированное число вычисляется по формуле:

N = мантиса · 2 порядок ;

  • 32-разрядное действительное - от 3,4·10-38 до 3,4·1038;
  • 64-разрядное действительное - от 1,7·10-308 до 1,7·10308;
  • 80-разрядное действительное - от 3,4·10-4932 до 1,1·104932.

Следует отметить, что помимо разрядности, определённой типом процессора необходимо учитывать и язык программирования (конкретно возможности компилятора). Например, язык программирования Турбо Паскаль поддерживает тип данных real, для этого типа данных отведено 48 разрядов.

Повторим, что минимальной адресуемой единицей информации, обрабатываемой в ЭВМ, является байт. Байт состоит из восьми двоичных разрядов.

Рассмотрим подробно представление чисел в памяти ЭВМ.

5.2 Формы представления чисел в ЭВМ.

Для представления чисел в ЭВМ применяются две различные формы: с фиксированной точкой (запятой) - для целых чисел и с плавающей точкой (запятой) для действительных чисел.

Целые числа могут быть представлены со знаком и без знака.

Возьмем разрядную сетку из 8 бит (т.е. байт) и попробуем разобраться, как представляются целые числа без знака. Самое маленькое число, которое можно поместить в один байт без знака - это ноль.

Число 0 без знака.

Самое большое число, которое можно представить в одном байте без знака - это (в двоичном виде) 111111112

Переведем это число в десятичную систему счисления (для простоты счета переведем сначала в 8-ную).

Итак, в один байт без знака можно поместить максимальное десятичное число 255.

Аналогично можно вычислить максимальное число, которое можно поместить в два байта (т.е. 16 бит).

11111111111111112=6553510.

Для чисел со знаком самый левый разряд отводится под знак. Для положительного числа этот разряд равен 0, для отрицательного - 1.

Число +12 в 8-битной разрядной сетке будет записано следующим образом: 1210=11002.

Знак ‘+’

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

Вычислим максимальное положительное число, которое помещается в 8 бит со знаком, т.е. под число отводится 7 бит.

11111112=1778=1.82+7.81+1.80=64+56=127.

Теперь вычислим максимальное положительное число, которое помещается в 16-ти разрядную сетку со знаком.

1111111111111112=7FFF16=716.163+F16.161+F16.161+F16.160=7.163+15.162+15.161+15.1=32767.

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

5.3 Прямой, обратный и дополнительный коды.

1) Положительные числа.

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

Прямой код Xпр двоичного числа X содержит двоичные цифровые разряды, слева записывается знак числа.

Разместить в разрядной сетке из восьми разрядов положительное число 97.

Это же число разместим в разрядной сетке из 16 разрядов.

2) Отрицательные числа.

Отрицательные числа хранятся в памяти ЭВМ либо в обратном, либо в дополнительном кодах.

Обратный код Xобр двоичного отрицательного числа X получается следующим образом: в знаковый разряд числа записывается единица, в цифровых разрядах нули заменяются единицами, а единицы - нулями.

Запишем число -4 в обратном коде в 8-ми разрядной сетке. Двоичный код модуля исходного числа равен 1002. Обратный код получается инверсией каждого разряда двоичного кода модуля исходного числа, записанного в 8-ми разрядную сетку.

Двоичный код модуля исходного числа равен 00000100. Выполним инверсию каждого разряда.

Обратный код числа -4 записывается следующим образом:

Знаковый разряд

Дополнительный код Xдоп отрицательного числа X получается из обратного кода Xобр путем прибавления единицы к самому правому разряду (он называется младшим).

Итак, Xдоп=Xобр + 00000001, т.е.

1
(знак.разряд)

(сложение производим в двоичной системе счисления 12+12=102)

2726252423222120

Теперь приведем полученное число в десятичную систему счисления

128+64+32+16+8+4=252

Мы получили, что дополнительный код числа –4 в десятичной системе счисления равен 252. Сложим ê-4ê+252=256. 256=28. Количество разрядов сетки было равно 8. Число 252 «дополнило» число ç–4ç до 28 = 1000000010.

Теперь сложим два двоичных числа – двоичный код числа ç-4ç в 8-разрядной сетке и дополнительный код числа –4:

1 000000002 мы получили 28

Запишем общее правило получения дополнительного кода некоторого целого числа х.

2k - |x|, x<0, где k – количество разрядов сетки.

Есть еще одно очень простое правило получения дополнительного кода некоторого отрицательного числа.

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

00000 100 прямой код ç-4ç

11111 100

инверсия разрядов

Определим наименьшее отрицательное число, которое можно положить в один байт со знаком. Прямой код такого числа равен -1111111. Самый левый разряд отведён под знак числа. Найдём дополнительный код числа А. Адоп = 10000000 .

Следовательно, самое маленькое отрицательное число, которое можно записать в 8-ми разрядной сетке - 27 = -128. Рассуждая таким же образом, получим, что для 16-ти разрядной сетки самое маленькое отрицательное число равно 215 или-32768.

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

а) Вычислить х-у, где х=+6, у=-3, при этом результат является положительным числом.

хпр=хобр=хдоп=0.110; уобр=1.100; удоп=1.101

Сложение в обратных кодах:

уобр=1.100

В данном случае единица, не поместившаяся в разрядную сетку (единица переноса из знакового разряда), циклически прибавляется к правому разряду суммы кодов. Ответом является положительное двоичное число 0.0112=310.

удоп=1.101

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

б) Рассмотрим второй случай: числа имеют разные знаки, но в результате получаем отрицательное число.

х=-610=-1102 и у=+310=+0112.

Хобр=1.001, хдоп=1.010, упр=уобр=удоп=0.011.

Сложение в обратных кодах:

упр= 0.011

В данном случае получен обратный код алгебраической суммы, необходимо перейти от обратного кода к прямому:

(х+у)обр=1.100, следовательно, (х+у)пр=-0112=-310(единица в знаковом разряде дает минус, все остальные разряды инвертируются).

Сложение в дополнительных кодах:

упр=0.011

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

(1.101)доп ® (1.100)обр ® -0112=-310.

в) Третий случай: оба числа отрицательные.

Х=-6=-1102, у=-3=-0112.

Хобр=1.001, хдоп=1.010,

Уобр=1.100, удоп=1.101.

Рассмотрим алгебраическое сложение в дополнительных кодах:

В данном случае имеет место так называемое отрицательное переполнение, так как возник перенос только из знакового разряда суммы. Следовательно, результат получился отрицательный и превышающий предельно допустимое значение для данной разрядной сетки. Сдвинем полученный результат на 1 разряд вправо, тогда(х+у)доп=(1.0111)доп. Перейдем от дополнительного кода к прямому:

(1.0111)доп ® (1.0110)обр ® (1.1001)пр = -910.

Следует отметить, что в процессе выполнения расчетов на ЭВМ может образоваться как «положительный», так и «отрицательный» ноль, причем только в дополнительном коде он имеет единственное представление. Действительно,

(+0)пр=0.00…00; (-0)пр = 1.00…00,

в обратном коде

(+0)обр=0.00…00; (-0)обр = 1.11…11,

в дополнительном коде

(+0)доп=0.00…00; (-0)доп = 0.00…00.

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

По этим причинам в ЭВМ для представления отрицательных чисел чаще используется дополнительный код.

И последнее очень существенное замечание:

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

Пример. Пусть дана 4-х разрядная сетка со знаком, в которой должен разместиться результат от суммирования двух положительных чисел х=5 и у=7.

хпр = 0.101, упр = 0.111

Так как знаковый разряд равен единице, то результат воспринимается как дополнительный код и, если попробовать вывести значение суммы, допустим на экран, процессор перейдет к прямому коду:

(1.100)доп ® (1.011)обр ® -1002=-410.

Посмотрим, что получится, если под результат отвести шесть разрядов:

(х+у)пр=(0.01100)пр=+12.

Сумма двух чисел вычислена верно.

Выполнить самостоятельно :

1. Найти дополнительные коды для чисел:-45, 123, -98, -А516, -111, -778. Формат представления данных один байт со знаком.

2. Найти дополнительные коды для чисел: -11100018, 234, -456, -АС0916, -32324, СС7816, -110012,. Формат представления данных два байта со знаком.

5.4 Представление чисел с плавающей точкой.

Математическая запись числа две целых четыре сотых выглядит так 2,04 но возможна и такая запись 0,204×10, или такая 20,4×10-1, или такая 0,0204×102… Этот ряд можно продолжать сколь угодно долго. На что вы обратили внимание? - запятая перемещается («плавает») влево или вправо, и, чтобы не изменить значение числа, мы умножаем его на 10 в отрицательной или положительной степени.

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

В общем случае любое число N, представляемое в форме с плавающей точкой, является произведением двух сомножителей: .

m - будем называть мантиссой числа (модуль целой части мантиссы изменяется в диапазоне от 1 до S-1 (включая эти числа), где S- основание системы счисления),

p - целочисленный порядок,

S ¾ основание системы счисления.

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

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

Вещественное число в ПЭВМ представлено в экспоненциальной форме.

Следовательно, при представлении чисел с плавающей точкой необходимо записать в разрядной сетке ЭВМ со своими знаками мантиссу и порядок. Знак числа при этом совпадает со знаком мантиссы. Запишем число 314.6789 в экспоненциальной форме:314.6789= 3.1467890000E+2. Число разрядов, выделенных для изображения порядков, определяет диапазон представимых в ЭВМ чисел с плавающей точкой.

Кроме того, этот диапазон зависит также от основания S принятой системы счисления.

Значение произвольного числа вещественного типа представляется в ПЭВМ лишь с некоторой конечной точностью, которая зависит от внутреннего формата вещественного числа, точность представления чисел повышается с увеличением числа разрядов мантиссы.

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

Десятичная точка подразумевается перед левым (старшим) разрядом мантиссы, но при действиях с числом ее положение смещается влево или вправо в зависимости от двоичного порядка.

Рассмотрим представление чисел в разрядной сетке длиной 4 байта (так называемая одинарная точность) для ПЭВМ типа РС. Изобразим разрядную сетку, состоящую из 32 разрядов и посмотрим, как эти разряды распределены.

0 1 2 3 4 5 6 7 8 … 31

знак мантиссы порядок мантисса

Пусть необходимо представить число –13,75 в разрядной сетке с одинарной точностью. Для этого необходимо выполнить следующие действия:

1. перевести число в двоичную систему счисления;

2. представить его в экспоненциальной форме;

3. получить исходный порядок и мантиссу;

4. получить смещенный порядок.

1) 13.7510=1101.112

75/100=3/4=3/22=0.112

2) Представим двоичное число 1101.11 в экспоненциальной форме 1101.11=1.10111E+3.

3) Исходный порядок равен 3.

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

4) Вычислим смещенный порядок (в формате с одинарной точностью к исходному порядку добавляется число 127)

Pсм=3+127=130=128+2=27+2=100000002+102=1000 00102

Рсм=100000102

Мантисса=.101112

Знак числа положительный, следовательно, самый левый разряд равен 0.

0 10000010 10111000000000000000000

знак порядок мантисса

представим полученное число в шестнадцатеричной системе счисления

0100 0001 0101 1100 0000 0000 0000 0000

Итак, мы получили шестнадцатеричное число 415С0000.

Решим обратную задачу.

Значение переменной А Представлено в формате с плавающей точкой в шестнадцатеричной системе счисления А=ВЕ200000. Тип переменной А-single для языка Паскаль. Найти десятичное значение переменной А.

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

1) Перевести шестнадцатеричное число в двоичную систему счисления.

2) Выделить знак мантиссы(знак мантиссы совпадает со знаком числа).

3) Выделить смещенный порядок.

4) Вычислить исходный порядок.

5) Записать число, не забыв указать его целую часть, в экспоненциальной форме.

6) Перевести число из экспоненциальной формы в обычную форму записи.

7) Перевести число из двоичной системы счисления в десятичную.

Выполним перечисленные действия.

ВЕ200000=1011 1110 0010 0…0000

1 01111100 0100…0

знак порядок мантисса

Число отрицательное так как левый разряд равен 1.

Вычислим исходный порядок:

Р=Р-127=1111100-127=124-127=-3.

Запишем искомое число в экспоненциальной форме в двоичной системе счисления:

А=-1.01Е-3. Не забывайте указывать целую часть.

Представим искомое число в обычной форме записи в двоичной системе счисления:

А=-1.01Е-3=-0.001012=-0.2816=-0.15625.

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

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

После выравнивания порядков производится алгебраическое сложение мантисс.

Подведём некоторые итоги по представлению числовой информации в памяти ЭВМ.

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

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

Другое дело – вещественные числа. Вещественные числа образуют непрерывное множество. В памяти ЭВМ вещественные числа заменяются их кодами, которые образуют конечное дискретное множество, поэтому:

· строгие отношения между числами непрерывного множества превращаются в нестрогие для их компьютерных кодов;

· результаты вычислений содержат неизбежную погрешность, так как код вещественного числа в памяти ЭВМ является приблизительным представителем многих чисел из интервала, оценка погрешности самостоятельная и далеко не тривиальная задача;

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

Выполнить самостоятельно:

1) Найти представление десятичного числа А в шестнадцатеричной системе счисления в формате с плавающей точкой. Тип числа single.

А=-357.2265626; А=-0.203125; А=998.46875;

А=–657.4375; А=998.8125; А=-905,34375; А=897.5625

А=637.65625; А=56.53125; А=-4.78125.

2) Значение переменной А представлено в формате с плавающей точкой в шестнадцатеричной системе счисления. Тип переменной А-single для языка Паскаль. Найти десятичное значение переменной А.

А=C455C200; A=43D09400; A=443F9000; A=C2FF8000;

А=44071С00; A=435D2000; А=C401F000; А= С403ЕС00;

A=C3D87400; A=C3D40000; A=C411FA00; A=3F700000.

5.5 Кодирование текстовой и графической информации.

Теория кодирования информации является одним из разделов теоретической информатики. В задачи данного курса не входят вопросы теории кодирования. Коротко и упрощённо рассмотрим кодирование текстовой и графической информации.

Кодирование текстовой информации.

Кодирование текстовой информации заключается в том, что каждому текстовому символу ставится в соответствие код - целое положительное число. В зависимости от числа разрядов, отведённых под кодирование символов, все виды кодировок делятся на две группы: 8 – разрядные и 16 – разрядные. Для каждого вида кодировки символы вместе с их кодами образуют кодировочную таблицу. В кодировочной таблице первая половина кодов отводится под кодирование управляющих символов, а также цифр и букв английского алфавита. Оставшаяся часть под кодирование символов национального алфавита.

К 8 – разрядным кодировкам, включающим в себя кодировку символов русского алфавита, относятся: ASCII, ДКОИ-8, Win 1251.

16 – разрядная кодировка Unicode позволяет представить 216 различных символов. В кодовой таблице Unicode присутствуют символы всех современных национальных языков. Символы первых 128 кодов совпадают с таблицей кодов ASCII.

Кодирование изображений.

Рассмотрим растровое кодирование изображений.

Введём обозначения:

К – количество разных цветов, используемых при кодировании изображения;

n – количество битов, необходимое для кодирования цвета одной точки изображения. К и n связаны следующим образом:

Количество битов, необходимое для хранения одной точки изображения, называется глубиной цвета.

Окраска одной точки экрана формируется с помощью трёх базовых цветов: красного, зелёного, синего. Эти три цвета являются основой модели RGB. С их помощью можно получить 23 разных цветов. В данном случае для кодирования каждого из трёх базовых цветов достаточно одного бита. Однако каждый базовый цвет характеризуется не только его наличием, но и интенсивностью. Яркость каждого цвета кодируется восьмиразрядным двоичным числом, т.е. глубина цвета равна 8. Следовательно, число оттенков одного базового цвета равно 28. Это означает, что из трёх базовых цветов можно получить (256)3 =

16 777 216 цветов и их оттенков. Информация о каждом пикселе в видеопамяти займёт

n = 8 × 3 = 24 бита = 3 байта.

Таким образом, для хранения одного образа экрана потребуется объём памяти, равный произведению ширины экрана на высоту экрана и на глубину цвета. Ширина и высота задаются в пикселах.

В общем случае объём памяти, необходимый для хранения растрового изображения, рассчитывается по формуле:

V = W × H×n (битов),

где W – ширина изображения в точках;

H - высота изображения в точках;

V – объём памяти, необходимый для хранения растрового изображения.

Для представления информации в памяти ЭВМ (как числовой, так и не числовой) используется двоичный способ кодирования.

Элементарная ячейка памяти ЭВМ имеет длину 8 бит (байт). Каждый байт имеет свой номер (его называют адресом ). Наибольшую последовательность бит, которую ЭВМ может обрабатывать как единое целое, называют машинным словом . Длина машинного слова зависит от разрядности процессора и может быть равной 16, 32, 64 битам и т.д.

Двоично-десятичное кодирование

В некоторых случаях при представлении чисел в памяти ЭВМ используется смешанная двоично-десятичная "система счисления", где для хранения каждого десятичного знака нужен полубайт (4 бита) и десятичные цифры от 0 до 9 представляются соответствующими двоичными числами от 0000 до 1001. Например, упакованный десятичный формат, предназначенный для хранения целых чисел с 18-ю значащими цифрами и занимающий в памяти 10 байт (старший из которых знаковый), использует именно этот вариант.

Представление целых чисел в дополнительном коде

Другой способ представления целых чисел - дополнительный код . Диапазон значений величин зависит от количества бит памяти, отведенных для их хранения. Например, величины типа Integer (все названия типов данных здесь и ниже представлены в том виде, в каком они приняты в языке программирования Turbo Pascal. В других языках такие типы данных тоже есть, но могут иметь другие названия) лежат в диапазоне от -32768 (-2 15) до 32767 (2 15 - 1) и для их хранения отводится 2 байта (16 бит); типа LongInt - в диапазоне от -2 31 до 2 31 - 1 и размещаются в 4 байтах (32 бита); типа Word - в диапазоне от 0 до 65535 (2 16 - 1) (используется 2 байта) и т.д.

Как видно из примеров, данные могут быть интерпретированы как числа со знаком , так и без знака . В случае представления величины со знаком самый левый (старший) разряд указывает на положительное число, если содержит нуль, и на отрицательное, если - единицу.

Вообще, разряды нумеруются справа налево, начиная с 0. Ниже показана нумерация бит в двухбайтовом машинном слове.

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

Например, если число 37 (10) = 100101 (2) объявлено величиной типа Integer (шестнадцатибитовое со знаком ), то его прямым кодом будет 0000000000100101, а если величиной типа LongInt (тридцатидвухбитовое со знаком ), то его прямой код будет. Для более компактной записи чаще используют шестнадцатеричное представление кода. Полученные коды можно переписать соответственно как 0025 (16) и 00000025 (16) .

Дополнительный код целого отрицательного числа может быть получен по следующему алгоритму:

  1. записать прямой код модуля числа;
  2. инвертировать его (заменить единицы нулями, нули - единицами);
  3. прибавить к инверсному коду единицу.

Например, запишем дополнительный код числа -37, интерпретируя его как величину типа LongInt (тридцатидвухбитовое со знаком):

  1. прямой код числа 37 есть;
  2. инверсный код;
  3. дополнительный код или FFFFFFDB (16) .

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

Представление данных в ЭВМ.

За основу представления данных в ЭВМ, как правило, принята двоичная система счисления . Как и десятичная система счисления, двоичная система (в которой используются лишь цифры 0 или 1) является позиционной системой счисления, т.е. в ней значение каждой цифры числа зависит от положения (позиции) этой цифры в записи числа. Каждой позиции присваивается определенный вес.

В компьютерной технике широкое распространение получили также следующие позиционные системы счисления: восьмеричная, шестнадцатеричная и двоично-десятичная система.

(В двух словах – 16- ная система – это простое решение сложной проблемы – точное представление данных в ЭВМ, 16 –ная система счисления – это краткая нотация двоичной системы).

Форматы файлов

Основное назначение файлов - хранить информацию. Они также предназначены для передачи данных от программы к программе и от системы к системе. Другими словами, файл - это хранилище стабильных и мобильных данных. Но, файл - это нечто большее, чем просто хранилище данных. Обычно файл имеет имя, атрибуты, время модификации и время создания . Понятие файла менялось с течением времени. Операционные системы первых больших ЭВМ представляли файл, как хранилище для базы данных и, поэтому файл являлся набором записей. Обычно все записи в файле были одного размера, часто по 80 символов каждая. При этом много времени уходило на поиск и запись данных в большой файл. В конце 60-х годов наметилась тенденция к упрощению операционных систем, что позволило использовать их на менее мощных компьютерах. Это нашло свое отражение и в развитии операционной системы Unix. В Unix под файлом понималась последовательность байтов . Стало легче хранить данные на диске, так как не надо было запоминать размер записи. Unix оказал очень большое влияние на другие операционные системы персональных компьютеров. Почти все они поддерживают идею Unix о том, что файл - это просто последовательность байтов. Файлы, представляющие собой поток данных, стали использоваться при обмене информацией между компьютерными системами. Если используется более сложная структура файла (как в операционных системах OS/2 и Macintosh), она всегда может быть преобразована в поток байтов, передана и на другом конце канала связи воссоздана в исходном виде.

Файловая структура представляет собой систему хранения файлов на запоминающем устройстве, например, диске. Файлы организованы в каталоги (иногда называемые директориями или папками). Любой каталог может содержать произвольное число подкаталогов, в каждом из которых могут храниться файлы и другие каталоги. Способ, которым данные организованы в байты, называется форматом файла . Для того чтобы прочесть файл, например, электронной таблицы, необходимо знать, каким образом байты представляют числа (формулы, текст) в каждой ячейке; чтобы прочесть файл текстового редактора, надо знать, какие байты представляют символы, а какие шрифты или поля, а также другую информацию. Программы могут хранить данные в файле таким способом, какой выберет программист. Зачастую предполагается, однако, что файлы будут использоваться различными программами. По этой причине многие прикладные программы поддерживают некоторые наиболее распространенные форматы, так что другие программы могут понять данные в файле. Компании по производству программного обеспечения (которые хотят, чтобы их программы стали "стандартами"), часто публикуют информацию относительно форматов, которые они создали, чтобы их можно было бы использовать в других приложениях. Все файлы условно можно разделить на две части - текстовые и двоичные.

Текстовые файлы - наиболее распространенный тип данных во всем компьютерном мире. Для хранения каждого символа чаще всего отводится один байт, а кодирование текстовых файлов выполняют с помощью специальных таблиц, в которых каждому символу соответствует определенное число, не превышающее 255. Файл, для кодировки которого используется только 127 первых чисел, называется ASCII-файлом (сокращение от American Standard Code for Information Interchange - американский стандартный код для обмена информацией), но в таком файле не могут быть представлены буквы, отличные от латиницы (в том числе и русские). Большинство национальных алфавитов можно закодировать с помощью восьмибитной таблицы. Для русского языка наиболее популярны на данный момент три кодировки: Koi8-R, Windows-1251 и, так называемая, альтернативная (alt) кодировка. Подробнее о кодировании русского текста рассказано в главе "Обработка документов". Такие языки, как китайский, содержат значительно больше 256 символов, поэтому для кодирования каждого из них используют несколько байтов. Для экономии места зачастую применяется следующий прием: некоторые символы кодируются с помощью одного байта, в то время как для других используются два или более байтов. Одной из попыток обобщения такого подхода является стандарт Unicode , в котором для кодирования символов используется диапазон чисел от нуля до 65 536. Такой широкий диапазон позволяет представлять в численном виде символы языка людей из любого уголка планеты. Но чисто текстовые файлы встречаются все реже. Люди хотят, чтобы документы содержали рисунки и диаграммы и использовали различные шрифты. В результате появляются форматы, представляющие собой различные комбинации текстовых, графических и других форм данных.

Двоичные файлы, в отличие от текстовых, не так просто просмотреть и в них, обычно, нет знакомых нам слов - лишь множество непонятных символов. Эти файлы не предназначены непосредственно для чтения человеком. Примерами двоичных файлов являются исполняемые программы и файлы с графическими изображениями.

Кодирование чисел

Существуют два основных формата представления чисел в памяти компьютера. Один из них используется для кодирования целых чисел, второй (так называемое представление числа в формате с плавающей точкой) используется для задания некоторого подмножества действительных чисел. Множество целых чисел , представимых в памяти ЭВМ, ограничено. Диапазон значений зависит от размера области памяти, используемой для размещения чисел. В k-разрядной ячейке может храниться 2 k различных значений целых чисел. Чтобы получить внутреннее представление целого положительного числа N, хранящегося в k-разрядном машинном слове, необходимо:

    перевести число N в двоичную систему счисления;

    полученный результат дополнить слева незначащими нулями до k разрядов.

Пример . Получить внутреннее представление целого числа 1607 в 2-х байтовой ячейке.

Переведем число в двоичную систему: 1607 10 = 11001000111 2 . Внутреннее представление этого числа в ячейке будет следующим: 0000 0110 0100 0111.

Для записи внутреннего представления целого отрицательного числа (-N) необходимо:

    получить внутреннее представление положительного числа N;

    обратный код этого числа заменой 0 на 1 и 1 на 0;

    полученному числу прибавить 1.

Пример . Получим внутреннее представление целого отрицательного числа -1607. Воспользуемся результатом предыдущего примера и запишем внутреннее представление положительного числа 1607: 0000 0110 0100 0111. Инвертированием получим обратный код: 1111 1001 1011 1000. Добавим единицу: 1111 1001 1011 1001 - это и есть внутреннее двоичное представление числа -1607.

Формат с плавающей точкой использует представление вещественного числа R в виде произведения мантиссы m на основание системы счисления n в некоторой целой степени p, которую называют порядком: R = m * n p .

Представление числа в форме с плавающей точкой неоднозначно. Например, справедливы следующие равенства:

12.345 = 0.0012345 x 10 4 = 1234.5 x 10 -2 = 0.12345 x 10 2

Чаще всего в ЭВМ используют нормализованное представление числа в форме с плавающей точкой. Мантисса в таком представлении должна удовлетворять условию: 0.1 p <= m < 1p. Иначе говоря, мантисса меньше 1 и первая значащая цифра - не ноль (p - основание системы счисления).

В памяти компьютера мантисса представляется как целое число, содержащее только значащие цифры (0 целых и запятая не хранятся), так для числа 12.345 в ячейке памяти, отведенной для хранения мантиссы, будет сохранено число 12345. Для однозначного восстановления исходного числа остается сохранить только его порядок, в данном примере - это 2.

Кодирование текста

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

Для представления текстовой информации в компьютере чаще всего используется алфавит мощностью 256 символов. Один символ из такого алфавита несет 8 бит информации, т. к. 2 8 = 256. Но 8 бит составляют один байт, следовательно, двоичный код каждого символа занимает 1 байт памяти ЭВМ.

Все символы такого алфавита пронумерованы от 0 до 255, а каждому номеру соответствует 8-разрядный двоичный код от 00000000 до 11111111. Этот код является порядковым номером символа в двоичной системе счисления.

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

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

Стандартными в этой таблице являются только первые 128 символов, т. е. символы с номерами от нуля (двоичный код 00000000) до 127 (01111111). Сюда входят буквы латинского алфавита, цифры, знаки препинания, скобки и некоторые другие символы. Остальные 128 кодов, начиная со 128 (двоичный код 10000000) и кончая 255 (11111111), используются для кодировки букв национальных алфавитов, символов псевдографики и научных символов. О кодировании символов русского алфавита рассказывается в главе "Обработка документов".

Кодирование графической информации

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

Растровые изображения представляют собой однослойную сетку точек, называемых пикселами (pixel, от англ. picture element). Код пиксела содержит информацию о его цвете. Для черно-белого изображения (без полутонов) пиксел может принимать только два значения: белый и черный (светится - не светится), а для его кодирования достаточно одного бита памяти: 1 - белый, 0 - черный. Пиксел на цветном дисплее может иметь различную окраску, поэтому одного бита на пиксел недостаточно. Для кодирования 4-цветного изображения требуются два бита на пиксел, поскольку два бита могут принимать 4 различных состояния. Может использоваться, например, такой вариант кодировки цветов: 00 - черный, 10 - зеленый, 01 - красный, 11 - коричневый.

На RGB-мониторах все разнообразие цветов получается сочетанием базовых цветов - красного (Red), зеленого (Green), синего (Blue), из которых можно получить 8 основных комбинаций:

цвет

цвет

коричневый

Разумеется, если иметь возможность управлять интенсивностью (яркостью) свечения базовых цветов, то количество различных вариантов их сочетаний, порождающих разнообразные оттенки, увеличивается. Количество различных цветов - К и количество битов для их кодировки - N связаны между собой простой формулой: 2 N = К.

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

Объекты векторного изображения, в отличии от растровой графики, могут изменять свои размеры без потери качества (при увеличении растрового изображения увеличивается зернистость). Подробнее о графических форматах рассказывается в разделе "Графика на компьютере".

Кодирование звука

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

Поступим следующим образом. Будем измерять напряжение через равные промежутки времени и записывать полученные значения в память компьютера. Этот процесс называется дискретизацией (или оцифровкой), а устройство, выполняющее его - аналого-цифровым преобразователем (АЦП).

Для того чтобы воспроизвести закодированный таким образом звук, нужно выполнить обратное преобразование (для него служит цифро-аналоговый преобразователь - ЦАП), а затем сгладить получившийся ступенчатый сигнал.

Чем выше частота дискретизации (т. е. количество отсчетов за секунду) и чем больше разрядов отводится для каждого отсчета, тем точнее будет представлен звук. Но при этом увеличивается и размер звукового файла. Поэтому в зависимости от характера звука, требований, предъявляемых к его качеству и объему занимаемой памяти, выбирают некоторые компромиссные значения.

Описанный способ кодирования звуковой информации достаточно универсален, он позволяет представить любой звук и преобразовывать его самыми разными способами. Но бывают случаи, когда выгодней действовать по-иному.

Человек издавна использует довольно компактный способ представления музыки - нотную запись. В ней специальными символами указывается, какой высоты звук, на каком инструменте и как сыграть. Фактически, ее можно считать алгоритмом для музыканта, записанным на особом формальном языке. В 1983 г. ведущие производители компьютеров и музыкальных синтезаторов разработали стандарт, определивший такую систему кодов. Он получил название MIDI.

Конечно, такая система кодирования позволяет записать далеко не всякий звук, она годится только для инструментальной музыки. Но есть у нее и неоспоримые преимущества: чрезвычайно компактная запись, естественность для музыканта (практически любой MIDI-редактор позволяет работать с музыкой в виде обычных нот), легкость замены инструментов, изменения темпа и тональности мелодии.

Заметим, что существуют и другие, чисто компьютерные, форматы записи музыки. Среди них следует отметить формат MP3, позволяющий с очень большим качеством и степенью сжатия кодировать музыку. При этом вместо 18-20 музыкальных композиций на стандартный компакт-диск (CDROM) помещается около 200. Одна песня занимает примерно 3,5 Mb, что позволяет пользователям сети Интернет легко обмениваться музыкальными композициями.

Типы данных

Основными типами данных в вычислительной технике являются: бит, байт и слово. Компьютеры работают в основном с байтами , которые являются основной операционной единицей компьютерных данных. Машинное слово (слово) технический термин, означающий 16 бит или 2 байта одновременно. Двойное слово – 4 байта, расширенное слово – 8 байт.

Старший бит (15) Бит Младший бит (0)

1 1 1 0 1 0 1 1 0 1 0 1 0 1 0 1

Байт Байт

Для представления данных существует три основных формата:

    двоичный с фиксированной запятой;

    двоичный с плавающей запятой;

    двоично-кодированный десятичный (BCD).

Если надо закодировать целое число со знаком, то старший бит регистра (ячейки памяти) используется для хранения знака (0 при положительном знаке числа и 1 при отрицательном) – формат с фиксированной запятой.

Знак числа 1 0 0 0 1 1 0 0 0 0 1 0 0 0 1

Цифры числа

Исходные возможности компьютера позволяют ему работать только с целыми числами, к тому же не самыми большими. Даже в случае 2х байтового слова, мы можем записать максимальное число 65536, учитывая необходимость отображения, как положительных чисел, так и отрицательных получаем только половину всех числовых значений. Способы представления чисел и программное обеспечение позволяют значительно расширить возможности компьютера. Для кодирования действительных чисел используют 80-разрядное кодирование. При этом число предварительно преобразуется в нормализованную форму:

3,1415926 = 0,31415926 * 10 1

500 000 = 0,5 * 10 6

123 456 789 = 0,1 * 10 10

Первая часть числа называется мантиссой - М, а вторая – порядком q

Для того чтобы оперировать дробными числами или числами очень большой длины, используется понятие плавающей запятой . Плавающая запятая действует по принципу экспоненциального формата – числа вида -- -- - - + M *q + p

Знак числа (мантиссы)

Знак порядка Модуль Модуль

мантиссы порядка

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

Для реализации скоростных вычислений с плавающей запятой применяются числовые сопроцессоры (FPU – floating point unit). Данные в нем хранятся в 80-ти разрядных регистрах.

В двоично-кодированном десятичном формате каждая десятичная цифра представляется в виде 4-х битного двоичного эквивалента. Существует две основные разновидности этого формата: упакованный и неупакованный. В упакованном BCD-формате цепочка десятичных цифр хранится в виде последовательности 4-х битовых групп. В неупакованном формате каждая десятичная цифра находится в младшей тетраде байта, а содержимое старшей тетрады определяется используемой ЭВМ конкретной системой кодирования, и в данном случае несущественно.

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

Выводы

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

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

Информация не может существовать вне взаимодействия объектов и она не теряется ни одним из них в процессе взаимодействия.

Информация устраняет неопределенность, уменьшает хаос и энтропию системы.

Все процессы в природе сопровождаются сигналами . Зарегистрированные сигналы образуют данные. Отформатированные данные – сообщения преобразуются, транспортируются и потребляются с помощью методов. При взаимодействии данных и адекватных им методов образуется информация. Информация – это динамический объект, образующийся в ходе информационного процесса. Информационный процесс состоит из: сбора, хранения, обработки и передачи информации. Для удобства работы с данными их структурируют.

Существуют следующие важнейшие структуры: линейная, табличная и иерархическая. В ЭВМ применяется универсальная система кодирования, называемая двоичным кодом. Элементарной единицей представления данных называется – бит, далее идут байт, слово, двойное слово.

Вопросы и задания

    Как вы понимаете термин «средства массовой информации»? Что это?

    Являются ли данные товаром? Могут ли методы быть товаром?

    Определите в каком из сообщений содержится больше информации:

    Собака укусила мальчика;

    Мальчик укусил собаку.

    Что происходит с информацией по окончании информационного процесса?

    Перечислите основные составляющие информационного процесса.

    Что такое позиционная система счисления? Дайте примеры таких систем.

    Какое число является основанием десятичной, двоичной системы счисления?

    Перевести число из одной системы счисления в другую:

    2 10 = Х 2 , 1011 2 = Х 10 , 16 10 = Х 2, 1011,1 2 =Х 10

    Записать двоичное число, соответствующее десятичному числу 5 в однобайтовом формате.

Другим примером может служить семейство ЭВМ, разработанное под руководством Израиля Яковлевича Акушского (1911–1992). Для ускорения ряда арифметических операций он предложил использовать не позиционную (традиционную двоичную, или троичную, как у Брусенцова), а оригинальную систему вычислений в остаточных классах (СОК). Работы над ЭВМ в СОК начались в 1957 году в СКБ-245, затем продолжались в других организациях. В то время, когда скорость традиционных ЭВМ измерялась десятками тысяч оп./с, быстродействие ЭВМ в СОК на определенном классе задач достигало миллиона оп./с. Машины Акушского успешно использовались в интересах ПВО страны.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: