Главная Случайная страница


Категории:

ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника






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

 

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

Естественная форма характеризуется тем, что местоположение запятой, отделяющей целую часть числа от его дробной части строго фиксировано. Это означает, что если n-разрядное число в каком-то узле ЭВМ представлено комбинациями состояний n двухпозиционных элементов, то запятая всегда строго фиксирована после k-ого элемента. k-ым элементом может быть, в принципе, любой по порядку элемент. На практике с целью максимального упрощения правил выполнения арифметических операций, используются две разновидности естественной формы представления числовой информации. В первом случае запятая фиксируется перед самым левым цифровым разрядом числа. В этом случае все числа, представленные в машине, должны быть меньше единицы. Это означает, что, прежде чем ввести исходную числовую информацию, необходимо ее предварительно масштабировать. Делается это так. Любое число Х представляется в виде , где Mх носит название масштаба, а - масштабированного числа. Мх выбирается так, чтобы выполнилось условие <1. Масштаб запоминается вне ЭВМ, а в машину вводится лишь . В другом случае запятая фиксируется после самого первого цифрового разряда числа. В этом случае все числа, представляемые в машине, должны быть целыми, т.е. не иметь дробной части. Чтобы это имело место при решении задач, как и в первом случае, исходную числовую информацию масштабируют. Однако в последнем случае масштаб Мх подбирают таким, чтобы масштабное число не имело дробной части.

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

1. При вводе исходной информации в ЭВМ необходимо масштабировать все данные и запомнить все выбранные масштабы вне ЭВМ.

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

Рассмотрим простой пример. Пусть на ЭВМ необходимо вычислить величину y по формуле y=ax+b при следующих возможных значениях a, b, x: a=1,2; b=3,5; 0x7,5. Введем масштабы: , , и .

В ЭВМ будем вводить масштабные числа: =0,12; =0,35 и , величина которого будет лежать в пределах00,75.

Проверим, все ли мы учли. Для этого подставим выбранные масштабы в исходное уравнение

 

 

У первого слагаемого масштаб 102, а у второго слагаемого - 101. Чтобы правильно сложить, необходимо выравнить масштабы. Поэтому для коэффициента b выберем масштаб не 101 как раньше, а 102:

 

, где .

 

Получаем

 

.

 

Теперь необходимо проверить, а не будет ли какой-нибудь промежуточный результат по абсолютной величине превышать допустимый диапазон (в данном случае диапазон дробных чисел должен лежать в пределах от 0 до 1, но ни в коем случае не равняться 1).

 

 

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

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

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

 

,

 

где S - основание системы счисления; PХ - целое число, называемое порядком числа X; mХ - мантисса числа.

Мантисса mX, так же как и масштабированное число естественной формы, должна лежать в пределах 0 mX<1. В ЭВМ вводится не только значение мантиссы mХ числа, но и значение порядка PХ.

Нетрудно заметить, что представление числа в полулогарифмической форме неоднозначно. Так, например, число X=68,5 можно представить и как X=1020,685, и как X=1040,00685. В первом случае PХ=2, mХ=0,685; во втором случае PХ=4 и mХ=0,00685.

Для получения однозначного представления числа в полулогарифмической форме на величину мантиссы числа mХ накладывают ограничения S-1£mХ<1. Мантиссу, удовлетворяющую указанному неравенству, называют нормализованной мантиссой. Так как в ЭВМ при использовании полулогарифмической формы записывается и величина мантиссы, и величина порядка, то такие операции, как выравнивание порядков при сложении и вычитании, суммирование порядков при умножении, вычитание порядков при делении выполняет сама ЭВМ. На долю человека остается лишь ввод исходной информации в полулогарифмической форме.

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

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

 

Машинные коды чисел

 

Кодом называется любое обозначение, отличное от общепринятого. Общепринято, например, положительные числа отмечать знаком “+” (или вообще не указывать знак), а отрицательные числа отмечать знаком “-”. Числа разного знака необходимо уметь изображать состояниями двухпозиционных элементов при вводе их в машину. Для изображения знака числа вводится дополнительный двухпозиционный (знаковый разряд), причем состоянию “0” этого разряда изображает знак “+”, а состояние “1” - знак “-”. Такое изображение чисел со знаком называется прямым кодом. Число X в прямом коде будем условно изображать как [X]пр. В числах, представленных в естественной форме, знаковый разряд помещается непосредственно перед масштабированным числом. Таким образом, прямой код числа, представленного в естественной форме, (это в полной мере относится и к мантиссе числа, представленного в полулогарифмической форме), образуется по правилу: если число X положительно, т.е. X= +X1, X2, ... Xn (X1Xn - цифровые разряды), то Xпр=0, X1, X2, ... Xn; если число X отрицательно, т.е. X= -X1, X2, ... Xn, то Xпр=1, X1, X2, ... Xn.

 

Примеры: 1) X=+0,1011 Xпр=0,1011,

2) X=-0,1101 Xпр=1,1101.

 

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

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

а) в знаковом разряде записывается “1”;

б) производится замена в цифровых разрядах “1” на “0” и “0” на “1”;

в) осуществляется прибавление “1” в младший цифровой разряд результата.

Дополнительный код числа будем обозначать как Xg.

 

Пример: Пусть X=-0,1101101. После выполнения пунктов а) и б) имеем 1.0010010. Прибавляя “1” в младший цифровой разряд, находим дополнительный код числа X: Xg=1,0010011.

 

Иногда для изображения знака используется не один знаковый разряд, а два. Такие коды называются модифицированными, и они позволяют обнаружить переполнение сети. Различают модифицированные прямой и дополнительный коды. В этих кодах знак “+” изображается комбинацией “00”, а знак “-” - комбинацией “11” в знаковых разрядах.

 

Примеры: X=+0,1101101, =00,1101101,

X=-0,11011, =11.11011, =11,00101.

 

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

0(или 1) hn. . . . . . . . . h0
Знак числа Цифровые разряды масштабированного числа

 

Рис. 4.3.1. Разрядная сетка числа с фиксированной запятой

 

Переполнение разрядной сетки - полное искажение результата. Поясним это на примерах.

1. Пусть даны числа: =+0,1101 и =+0,1001.

При сложении этих чисел получаем

 

0 , 1 1 0 1

+ 0 , 1 0 0 1

1 , 0 1 1 0

 

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

Пусть даны числа: =-0,1101 и =-0,1001.

Тогда

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

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

Рассмотрим следующие примеры.

0 0 , 1 1 0 1

+ 0 0 , 1 0 0 1

0 1 , 0 1 1 0

 

1 1 , 0 0 1 1

+ 1 1 , 0 1 1 1

1 1 0 , 1 0 1 0

Как только в результате выполнения операции сложения чисел в естественной форме с применением модифицированного кода в знаковых разрядах оказывается комбинация “01” или “10”, то это означает, что произошло переполнение разрядной сетки.

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

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

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

 

n m   n m
0,11…1 ´2-11…1 £½X½£ 0,11…1 ´2+11…1

 

0(или 1) m 0 (или 1) n
Знак порядка Порядок Знак мантиссы Мантисса

Рис. 4.3.2. Разрядная сетка числа с плавающей запятой

Последнее изменение этой страницы: 2016-06-09

lectmania.ru. Все права принадлежат авторам данных материалов. В случае нарушения авторского права напишите нам сюда...