Представление числовых данных в компьютерных системах - Компьютерная арифметика

Компьютерный арифметика счисление двоичный

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

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

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

На рис. 3.1 схематически представлена система машинных чисел где (XMax) и (XMin) - соответственно максимально и минимально представимые числа, между которыми находится конечное множество допустимых чисел.

система машинных чисел

Рисунок 3.1 - Система машинных чисел

Если результат операции по модулю превышает |XMax|, то возникает переполнение (overflow). Если модуль результата |X|<|XMin|, фиксируется антипереполнение (underflow). В этом случае большинство компьютеров возвращают в качестве результата операции (0). Поэтому область чисел от

    (-XMin до XMin), за исключением истинного нуля, называют машинным нулем. В современных универсальных компьютерных системах преимущественно используют две формы представления чисел: - с фиксированной запятой (фиксированной точкой - fixed point) - естественная форма; - с плавающей запятой ( плавающей точкой - floating point) - альтернативные названия - нормальная, экспоненциальная, научная запись или полулогарифмическая.

Например, пусть задано число:

. (3.1)

Где: Х - некоторое число;

    - цифры слева от запятой; - цифры справа от запятой.

В позиционной системе счисления с основанием (2) его можно записать в виде:

. (3.2)

Где: Х - некоторое число;

M - мантисса;

2 - основание системы счисления;

P - порядок.

Если каждому числу (X) в компьютерной системе однозначно соответствует мантисса (M), а порядок (Р) фиксирован для всех чисел, то число (X) представлено в форме с фиксированной запятой. Порядок (Р) в этом случае устанавливается заранее при подготовке задачи к решению, причем число (2-P), по существу, является масштабным коэффициентом, на который необходимо умножить исходные данные для того, чтобы избежать переполнения разрядной сетки.

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

В первом случае компьютерная система оперирует с числами, которые по абсолютной величине меньше единицы, то есть, с правильными дробями. Если количество разрядов для представления мантиссы равно (n), то: (|XMin|=2-n, |XMax|=1-2-n).

Во втором случае компьютерная система выполняет операции с целыми числами, абсолютные величины которых находятся в пределах от (1 (минимального, не равного нулю числа) до 2N-1).

Если каждому числу (X) однозначно соответствует пара (М) и (Р), то такое представление называют формой с плавающей запятой. Следует иметь в виду, что положение запятой в реальной разрядной сетке компьютерной системы физически никак не указывается, а только "подразумевается" и само число можно записать в виде:

. (3.3)

. (3.4)

Где: Х - некоторое число;

М - мантисса числа (Х);

Е - разделитель мантиссы и порядка числа (Х);

Р - порядок числа (Х).

Для однозначного представления числа в нормальной форме принято, что мантисса должна удовлетворять условию:

. (3.5)

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

С учетом рассмотренных ранее структурных единиц информации, различают несколько форматов данных с фиксированной запятой. Например, в компьютерах IBM PC AT машинное слово имеет длину 16 бит (2 байта).

Используются следующие форматы: слово, полуслово (байт), двойное слово (doubleword), учетверенное слово (quadword).

В соответствии с перечисленными форматами различают базовые типы целочисленных данных:

    - слово - 8 бит; - целое слово - 16 бит; - короткое целое слово - 32 бит; - длинное целое слово - 64 бит.

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

В двоичной системе счисления принято знак положительного числа обозначать "0", а знак отрицательного числа - "1" (обычно это крайний левый бит в представлении числа), как показано на рис.3.2.

формат числа в двоичной системе счисления со знаковым битом

Рисунок 3.2 - Формат числа в двоичной системе счисления со знаковым битом

Будем обозначать целые знаковые числа в виде:

. (3.6)

А правильные дроби:

. (3.7)

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

Ее решают за счет использования особых способов кодирования числовых данных.

Рассмотрим три наиболее распространенных кода, которые применяются на практике: - прямой код; - обратный код; - дополнительный код.

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

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

К кодам выдвигаются следующие требования:

    - разряды числа в коде жестко связаны с определенной разрядной сеткой; - для записи кода знака в разрядной сетке отводится фиксированный, строго определенный разряд. 1. Прямой код. Наиболее естественный код. Формируется следующим образом: в знаковый бит (SX) числа помещают знак числа (0 - если число положительное и 1 - если число отрицательное ), а остальные биты используют для абсолютного значения (модуля) числа. Правило преобразования чисел в прямом коде можно записать так:

. (3.8)

Где A - вес старшего разряда в n-разрядной сетке, A=2S-1.

Отображение s-битных наборов ( прямой код верхняя числовая прямая) на числовую ось ( числа нижняя числовая прямая ) для компьютерной системы показано на рис. 3.3

отображение s-битных наборов (прямой код) на числовую ось

Рисунок 3.3- Отображение s-битных наборов (прямой код) на числовую ось

Например:

Десятичное

Число

Двоичное

Число

Прямой

Код

Комментарии

(0(10))

0000(2)

0,000

Положительный (0)

(0(10))

0000(2)

1,000

Отрицательный (0)

(4(10))

0100(2)

0,100

Положительная (4)

(- 4(10))

1100(2)

1,100

Отрицательная (4)

(3(10))

0011(2)

0,011

Положительная (3)

(- 3(10))

1011(2)

1,011

Отрицательная (3)

Диапазон представимых чисел: -(2S-1-1)...(2S-1).

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

2. Обратный код. Обратный (n - разрядный) двоичный код положительного целого числа состоит из одноразрядного кода знака (0), за которым следует ( n - 1) разрядное двоичное представление модуля числа, то есть обратный код для положительного числа совпадает с прямым кодом.

Обратный ( n - разрядный ) двоичный код отрицательного целого числа состоит из одноразрядного кода знака (1), за которым следует ( n - 1) разрядное двоичное число, представляющее собой инвертированное (n - 1) разрядное представление модуля числа, то есть для отрицательного числа все цифры числа заменяются на противоположные, а именно ( 1 на 0, а 0 на 1) и в знаковый разряд заносится единица.

Обратный код числа определяется соотношением:

. (3.9)

Где B=2S-1=XMax - максимальное число в n-разрядной сетке.

Отображение s-битных наборов ( обратный код верхняя числовая прямая) на числовую ось ( числа нижняя числовая прямая ) для компьютерной системы показано на рис. 3.4.

отображение s-битных наборов (обратный код ) на числовую ось

Рисунок 3.4 - Отображение s-битных наборов (обратный код ) на числовую ось

Например:

Десятичное

Число

Двоичное

Число

Обратный

Код

Комментарии

(0(10))

0000(2)

0,000

Положительный (0)

(0(10))

1111(2)

1,111

Отрицательный (0)

(4(10))

0100(2)

0,100

Положительная (4)

(- 4(10))

1011(2)

1,011

Отрицательная (4)

(3(10))

0011(2)

0,011

Положительная (3)

(- 3(10))

1100(2)

1,100

Отрицательная (3)

Диапазон представимых чисел: -(2S-1-1)...(2S-1).

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

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

Похожие статьи




Представление числовых данных в компьютерных системах - Компьютерная арифметика

Предыдущая | Следующая