Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вычислительные процессы.doc
Скачиваний:
11
Добавлен:
15.09.2019
Размер:
1.1 Mб
Скачать

1.2. Представление данных в эвм.

Данными принято называть информацию, вводимую в компьютер и выводимую из него.

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

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

Двоичную цифру, стоящую на каком-либо фиксированном месте (03  i  1) слова, называют i-м разрядом ячейки.

В качестве машинного слова могут быть:

  • числа, участвующие в вычислениях;

  • символы, над которыми производятся какие-либо действия;

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

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

При естественной форме число записывается в естественном натуральном виде, например: 15 698-целое число, 0,005786-правильная дробь, 4,45336-неправильная дробь.

При нормальной форме запись одного числа может быть различной в зависимости от ограничений, накладываемых на ее форму. Например, число 12560 может быть записано так: 12560=1,256*10=0,1256*10=125 600*10 и т.д.

Представление чисел с фиксированной запятой. Ячейка памяти ЭВМ, содержащая число с фиксированной запятой, имеет знаковый и цифровые разряды. Разряды ячейки нумеруются, как правило, слева направо, причем каждому разряду ячейки соответствует один и тот же разряд числа.

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

Например, если для изображения целой части числа отведено 10 двоичных знаков, а дробная часть изображается 13 двоичными знаками (один символ отводится для изображения знака числа, например знаку "+" cоответствует 0, знаку "-" - единица), то число 11.2510=1011.012 запишется в виде машинного слова, представленного на рис.1.

Рис. 1. Формат числа с фиксированной запятой.

Можно условиться, что под изображение целой части числа отводятся разряды с 1 по 31 включительно, тогда в ячейке памяти будут храниться только целые числа. Легко видеть, что максимальному по модулю целому числу соответствует машинное слово, содержащее единицы в разрядах 1-31.

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

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

Действительно, если ячейка ЭВМ имеет 32 разряда и запятая, отделяющая целую часть от дробной, находится после 16-го разряда, то максимальное по абсолютной величине число, которое можно записать в ячейку памяти, имеет вид () 1111111111111111,1111111111111112 , т.е. не превышает 6553610. Наименьшее же по абсолютной величине отличное от нуля число равно 0000000000000000,0000000000000012 . Очевидно, что оно соответствует десятичному числу 1*2-14 . Таким образом, в нашем примере, в 32-х разрядную ячейку памяти ЭВМ с фиксированной запятой можно записать любое число k, такое, что

1*2-14  k  65536.

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

Представление чисел с плавающей запятой. Такое представление основано на том, что любое число k0 в системе счисления с основанием Q имеет вид

k=(M)Qp,

где M - правильная положительная дробь, называемая мантиссой числа k; p - целое число, называемое порядком числа k. Представление числа в таком виде не является единственным. Например, десятичное число 136 можно записать следующим образом:

13610=13.6*101=1.36*102=0.136*103=0.0136*104=...

Для выделения одного-единственного вида записи числа с плавающей запятой наложим следующее ограничение. Пуст в первом разряде мантиссы стоит отличная от нуля цифра, т.е. 1/k  M  1. Такое представление числа k называется нормализованным. Очевидно, что число k=136 в нормализованном виде выглядит так:

k=0.125*103

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

Так например, число 710=10111*0.111 запишется в ячейке ЭВМ в виде машинного слова длиной в 32 разряда в формате числа с плавающей запятой следующим образом (см рис.2).

Рис. 2. Формат числа с плавающей запятой.

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

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

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

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

Так как машинное слово в рассматриваемом нами случае состоит из 32 разрядов, то максимальное количество различных символов кодируемых в одной ячейке памяти равно 232 . Такое количество различных символов вряд ли необходимо. На практике обычно для изображения одного символа отводят 8 разрядов машинного слова (один байт). В этом случае мы можем иметь 28=256 различных символов. Этого вполне достаточно для решения практических задач. В одной ячейке машинного слова хранится при этом несколько символов.

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

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

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

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

Рис. 3. Формат представления команд.

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