
- •Лекция 1. Предствление данных в памяти эвм Предствление числа в эвм
- •Лекция2.Измерение информации.Энтропия.Свойства энтропии Измерение информации
- •Лекция 1. Кодирование информации. Равномерное и неравномерное кодирование Кодирование информации Кодирование информации. Равномерное и неравномерное кодирование.
- •Лекция2.Оптимальное кодирование.Критерий оптимальности Оптимальное кодирование.Критерий оптимальности Оптимальное кодирование
- •Лекция 1. Алгоритм.Понятие алгоритма.Основные базовые конструкции различные подходы к понятию «алгоритм»
- •Понятие исполнителя алгоритма
- •Графическое представление алгоритмов
- •Лекция 2. Машина Поста. Машина Тюринга постановка проблемы. Машина Поста. Машина Тьюринга. Постановка проблемы
- •Машина поста
- •Машина тьюринга
- •Нормальные алгоритмы маркова
- •Рекурсивные функции
Лекция 1. Предствление данных в памяти эвм Предствление числа в эвм
Запись числа в ЭВМ. Структура разрядной сетки с фиксированной и с плавающей запятой. Диапазоны представимых чисел в зависимости от типа разрядной сетки. Преимущества и недостатки данных форматов представления числа.
Представление числа в ЭВМ осуществляется с помощью конечного набора базовых элементов, каждый из которых "запоминает" один разряд числа. Совокупность таких элементов называется разрядной сеткой. Точность представления числа в ЭВМ зависит от количества элементов в разрядной сетке и способа их использования. Так, разрядные сетки бывают двух типов - с фиксированной запятой (ФЗ) и с плавающей запятой (ПЗ).
Разрядная сетка с фиксированной запятой - это конечная разрядная сетка, в которой строго фиксировано число разрядов для представления целой части числа и дробной части числа (т. е. по сути фиксировано положение запятой). В машинах чаще используются сетки ФЗ двух типов: а - запятая зафиксирована после последнего разряда и б - запятая зафиксирована перед первым разрядом числа. Нулевой разряд сетки отведен под код знака числа. Знак числа кодируется нулем, если число положительное, и числом (p—1), где p - основание системы счисления, если число отрицательное. Вес каждого разряда указан над ним.
Очевидно, что в разрядную сетку типа ФЗ, а можно поместить только целое число, в сетку типа ФЗ, б - только дробное.
Найдем диапазон чисел, представимых в разрядных сетках с фиксированной запятой. Для этого достаточно найти наибольшее и наименьшее значение чисел для положительной и отрицательной частей числовой оси.
Начнём с разрядной сетки типа ФЗ, а. Для простоты рассмотрим случай p = 2. Наибольшее положительное число в разрядной сетке будет иметь вид
Его можно выразить как +(2n-1), где n - число разрядов, отведённых под запись числа.
Объединив полученные результаты, запишем:
Для произвольной системы счисления
Все числа |x| < 1 образуют область машинного нуля, все числа |x| > pn -1 образуют область переполнения.
Рассуждая аналогично, найдём диапазон чисел в разрядной сетке типа
ФЗ, б:
Область |x| < p-п является областью машинного нуля, область | x | > 1 – p-п - областью переполнения.
Чтобы произвольное число х поместилось в разрядную сетку, его предварительно следует отмасштабировать, т. е. домножить на число Мх - масштаб, такое, чтобы результат хт = xMx соответствовал имеющейся разрядной сетке.
Например, требуется записать число x = -308,12(10) в 8-разрядных сетках типа ФЗ, а и ФЗ, б. В случае ФЗ, а масштаб М = 102преобразует число x в целое xт = -308,12 102 = -3 0812; в разрядной сетке число имеет вид
Для случая ФЗ, б масштаб М = 10-3 обеспечивает преобразование числа
x в дробное xт = -308,12 10 3 = -0,30812. В разрядной сетке число xт будет выглядеть следующим образом:
Необходимость ручного масштабирования является одним из основных недостатков разрядных сеток такого типа, ограничивая их применение в вычислительных машинах. Кроме того, относительная погрешность малых чисел оказывается очень высока при таком способе их записи. Поэтому на практике большее применение получили разрядные сетки с плавающей запятой, в которых размещается не только само число, но и его масштаб.
Разрядная сетка с плавающей запятой состоит как бы из двух сеток с фиксированной запятой: ФЗ, а и ФЗ, б, причем в сетку типа а заносится порядок числа, в сетку типа б - мантисса числа.
Чтобы разместить число х в сетке такого типа, требуется сначала представить его в нормализованном виде, т. е. в виде произведения мантиссы
на масштаб ps:
(12.1)
(12.2)
где - мантисса;
p - основание системы счисления;
s - порядок масштаба (или просто порядок).
Условие (12.2) обеспечивает единственность нормализованного представления числа.
Пусть требуется разместить десятичное число х = -48,105 в разрядной сетке типа ПЗ, где 3 разряда отведено под порядок и 6 разрядов под мантиссу. Нормализованный вид числа х: х = -0,48105 • 10 . Содержимое разрядной сетки:
Диапазон представимых чисел для разрядных сеток с плавающей запятой значительно шире, чем для сеток с фиксированной запятой.
Для положительных чисел получаем:
Объединяем интервалы:
Этот результат получен для 2-ичной СС, но его легко обобщить для произвольной натуральной СС с основанием p:
(12.3)
Отсюда видно, что чем больше т и к, тем шире диапазон представимых чисел.
Область машинного нуля имеет вид | x | < , она зависит только от к - числа разрядов, отведённых под порядок.
Область переполнения |x|> определяется всеми параметрами сетки.
Оценим точность представления чисел в форме с плавающей запятой.
Абсолютная погрешность числа x и мантиссы :
Относительная погрешность, учитывая (12.2):
зависит от числа разрядов, отведённых под мантиссу. Это выгодно отличает данный способ представления от записи в форме с фиксированной запятой, где относительная погрешность числа зависит от самого числа и растёт с уменьшением его абсолютного значения.
Итак, представление числа с плавающей запятой имеет ряд преимуществ:
- шире диапазон представимых чисел;
- не требуется предварительное масштабирование чисел;
- относительная погрешность не зависит от значения числа.
Однако, при выполнении операций над числами, также возможно получение результата, порядок которого больше допустимого в машине. Например,
необходимо вычислить z = w • v/u, где w = 0,4 • 1010, v = 0,3 • 1010, u = 0,2 • 108 Если сначала выполнить умножение (w • v), то порядок станет больше максимально допустимого (1012), произойдёт переполнение по порядку и машина прекратит вычисления. Если сначала выполнить деление (w/u), а затем умножение (w/u) • v, то все результаты, включая промежуточный, будут в рамках диапазона представимых чисел. Этот момент следует учитывать при программировании вычислений. Он является следствием неассоциативности машинной арифметики.
В заключение можно отметить, что несмотря на усложнение технических устройств ЦВМ для работы с числами в форме ПЗ и увеличение временных затрат на выполнение арифметических операций, этот способ работы с цифровой информацией в общем является более производительным. Однако сетки с фиксированной запятой не утратили своего значения, и в ряде случаев их применение является целесообразным. Вычислительные машины, в которых используются и та и другая формы представления числа, позволяют учесть особенности решаемой задачи и повысить быстродействие вычислений.
Начало формы