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

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

Рассмотрим, какой диапазон целочисленных данных можно поместить в один байт (Табл. 2.32.).

Таблица 2.32. Максимальное и минимальное число в байте

Знак Значение кода Примечание
Максимальное положительное число
Минимальное отрицательное число в дополнительном коде

01111111 = 26 + 25 + 24 + 23 + 22 + 21 + 20 =

= 64 + 32 + 16 + 8 + 4 + 2 + 1 =

= +127

10000000д. код = 11111111 + 1 = -128

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

+127 ≥ X ≥ -128,

где X – целое число.

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

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

Однако целый ряд машин работает с числами в этих двух форматах.

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

Числа с фиксированной точкой.

Числа с фиксированной точкой, (в литературе встречается и другое название: «естественная форма числа») - это такая форма числа, где число записывается только с помощью набора значащих цифр xj без явного указания их весов и знаков сложения между ними. Отсчет разрядов ведется от точки, которая разделяет целую и дробную частями числа (Рис. 2.36.).

Целая часть числа Точка Дробная часть числа
xj xj-1 x1 x0 . x-1 x-2 x-i
                   

Изображение числа имеет следующий вид:

X = xj xj-1…x1x0. x-1 x-2… x-i

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

Примеры:

347.764, -563.957783, +7307823645.3

1100.0010101, -1.111101, 11110000010001.001

Рассмотрим, диапазон чисел для одного байта.

Существует следующая формула:

P-s ≤ N ≤ Рm - Р-s, где

P – основание

s - число разрядов в дробной части;

m - число разрядов в дробной части;

N - число с фиксированной точкой.

Пусть: P = 2, s = 0, m = 7.

2-0 ≤ N ≤ 27 - 2-0

1 ≤ N ≤ 128 - 1

1 ≤ N ≤ 127.

Пусть: P = 2, s = 2, m = 5.

2-2 ≤ N ≤ 25 - 2-2

0.25 ≤ N ≤ 32 – 0.25

0.25 ≤ N ≤ 31.75

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

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

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

Числа с плавающей точкой.

Числа с плавающей точкой, (в литературе встречается и другое название: «нормальная форма числа») - это такая форма числа, где число записывается как произведение некоторой целой степени основания системы и цифровой части, являющейся правильной дробью. При этом показатель степени основания называется порядком, а цифровая часть - мантиссой числа.

Изображение числа имеет следующий вид:

X = 0. x1 x2… xi * 10p, где x1 x2… xi – мантисса; p – порядок.

Примеры записи чисел с плавающей точкой представлены на рис. 2.37.

Форма записи
Числа с фиксированной точкой Числа с плавающей точкой
6541.7645310 0.65417645310 * 104 = 0.0065417645310* 106
111000011.11012 0.11100001111012 * 101001 = 0.011100001111012 * 101010

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

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

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

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

Запись чисел в ненормализованном и нормализованном виде показана на рис. 2.38.

Форма записи
Ненормализованное число Нормализованное число
0.00101* 101100 0.101* 101110
0.0001* 1010 0.1* 10101

Рассмотрение рис. 2.38 позволяет отметить следующие два недостатка машин, работающих с числами с плавающей точкой:

1. необходимость усложнения арифметического устройства из-за возможной неоднозначности записи числа;

2. необходимость усложнения структуры АЛУ машины вследствие того, что в нем приходится производить разные действия с разными частями чисел (мантиссами и порядками).

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

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

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

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

Наши рекомендации