Представление числовых данных с фиксированной запятой
Арифметика с фиксированной запятой является вспомогательной в сфере научно-технических расчетов и основной в информационных технологиях. Она используется для подсчета циклов, формирования адреса по компонентам, выполнения логических операций над числами и отдельными разрядами и т.д. Все это –область применения целых чисел. Таким образом, форма представления чисел с фиксированной запятой в настоящее время применяется для представления целых чисел со знаком, целых чисел без знака или набора бит.
При представлении числовых данных в форме с фиксированной запятой для хранения и обработки чисел используются регистры с жесткой разрядной сеткой, в которых определены знаковые разряды, разряды целой части числа и разряды дробной части числа. Для каждой разрядной сетки определен диапазон чисел, представимых в данном формате. Числа, меньшие веса младшего разряда регистра, представляются нулями во всех разрядах. Это машинный нуль.
Особое значение в формате чисел с фиксированной запятой имеет выбор места запятой в разрядной сетке. В специализированных системах здесь нет проблем. Например, в конторских счетах, ориентированных на подсчет денег, запятая отделяет два десятичных разряда (разряды копеек) от остальных (разрядов рублей).
В универсальных системах эту проблему решают, фиксируя место запятой или перед самым старшим разрядом или после самого младшего разряда. В первом случае, все разряды отводятся под дробную часть числа (дробная арифметика), во втором – под целую часть числа (целочисленная арифметика). В любом случае при использовании этих систем программист должен производить процедуру масштабирования исходных и выходных данных.
Масштабирование данных – это выбор масштабов для данных, чтобы все входные и выходные данные могли быть выражены в виде дробных или целых чисел. Например, величину 5,6 метров (смешанное число) можно представить как 560 сантиметров (целое число) или как 0,0056 километра (дробное число).
Выбор между целочисленными и дробными вычислениями зависит от специализации вычислений.
В первых ЭВМ из класса малых ЭВМ, например, "Урал 1" и "Минск 1", форма данных с фиксированной запятой была единственной, и все вычисления велись в арифметике с фиксированной запятой. В этих условиях преимущества были на стороне дробной арифметики, так как в ней возможна блокировка увеличения разрядности результатов операции умножения (за счет округления).
Рассмотрим примеры операции умножения дробных и целых чисел в форме с фиксированной запятой. Для простоты воспользуемся десятичной системой счисления.
Пример 1. Умножение дробных чисел
0,35 ´ 0,35 = 0,1225 » 0,1200 = 0,12.
При умножении чисел их разрядность удваивается, что может привести к переполнению разрядной сетки. Но за счет округления можно представить результат умножения дробных чисел в пределах разрядной сетки исходных результатов.
Если исходные числа являются результатами измерений, то их точность определяется количеством разрядов их представления. Например, числа 0,35 и 0,350 отличаются тем, что первое число задано с точностью до двух, а второе – трех десятичных разрядов. Результаты любых арифметических операций не могут иметь большую точность, чем точность исходных данных. Следовательно, точность результат примера 1: 0,1225 определяется только первыми двумя цифрами после запятой и округление двух младших разрядов мало влияет на точность результата.
Пример 2. Умножение целых чисел.
35 ´ 35 = 1225 »1200
Округление в данном случае не дает возможности уменьшить разрядную сетку результата, так как нули в младших разрядах для целых чисел являются обязательными цифрами, задающими порядок числа (весов разрядов).
Дата добавления: 2022-02-05; просмотров: 289;