Хранение чисел с фиксированной точкой 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Хранение чисел с фиксированной точкой



Для хранения информации в оперативной памяти служит ячейка. Существуют ЭВМ, в которых ячейка имеет постоянную длину, в ПК – переменную. Наименьшая длина – 1 байт. Есть ячейки в 2, 4, 6, 8, 10 байт. Ячейка в 2 байта называется словом, в 4 – двойным словом, в 1 байт – полусловом. Будем считать, что байты размещаются так(k=2, 4, 6, 8, 10):

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

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

Для представления целых чисел используют два варианта: со знаком и без знака. В первом случае выделяют «знаковый» разряд (обычно крайний слева) и сохраняют там 0 («+») или 1 («-»)

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

В этом формате могут быть числа – правильные дроби.

Для представления целых числе в форме с фиксированной точкой со знаком в ЭВМ применяют прямой, обратный и дополнительный коды. Идея такова: код трактуется как число без знака, а диапазон чисел без знака разбивается на два поддиапазона. Один из них дает положительные числа, а другой – отрицательные. Разбиение выполняется таким образом, чтобы принадлежность к диапазону определялась максимально просто.

Очень удобно формировать коды так, чтобы значение старшего разряда показывало на знак числа

Формат с фиксированной запятой:

• используется ПК или ДК (чаще),

• числа расположены равномерно по числовой оси,

дискретность (расстояние между соседними числами) постоянная на всем диапазоне.

 

 

4. Сложение в формате с фиксированной точкой. Переполнение.

Таблица сложения для двоичной арифметики:

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

Обнаружение переполнения разрядной сетки при сложении может производиться несколькими способами.

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

Старший знаковый разряд даже при переполнении сохраняет информацию о знаке результата («Разряд знака»).

Младший – «Разряд переполнения». Комбинация знаков при «положительном» переполнении – 01, при «отрицательном» – 10.

Недостаток способа модифицированного кода — расширение разрядной сетки на один разряд.

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

Случай А. Неотрицательные операнды.

Правило сравнения переносов дает значение признака переполнения:

φр = 0 ÅX = X (переполнение при X = 1).

Слева от штриховой черты показаны значения воображаемого модифицированного дополнительного кода. Правило этого способа дает такое же значение признака переполнения:

φм = 0 ÅX = X

Третий способ - сравнение знаков. Реализуется программно (микропрограммно). Сначала проверяется, имеют ли операнды одинаковые знаки. И, если имеют, совпадает ли с этими знаками знак результата. Переполнение соответствует несовпадению (рис. 4).

5. Операция вычитания с фиксированной точкой. Дополнительный код числа.

Таблица вычитания

Очень часто в вычислениях должны использоваться не только положительные, но и отрицательные числа.
Число со знаком в вычислительной технике представляется путем представления старшего разряда числа в качестве знакового. Принято считать, что 0 в знаковом разряде означает знак «плюс» для данного числа, а 1 – знак «минус».

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


Применение дополнительного кода позволяет выполнить операцию алгебраического суммирования и вычитания на обычном сумматоре. При этом не требуется определения модуля и знака числа.


Прямой код представляет собой одинаковое представление значимой части числа для положительных и отрицательных чисел и отличается только знаковым битом. В прямом коде число 0 имеет два представления «+0» и «–0».


Обратный код для положительных чисел имеет тот же вид, что и прямой код, а для отрицательных чисел образуется из прямого кода положительного числа путем инвертирования всех значащих разрядов прямого кода. В обратном коде число 0 также имеет два представления «+0» и «–0».


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

-128 <= x <= 127.

Таблица прямого, обратного и дополнительного кода 4-битных чисел.



Поделиться:


Последнее изменение этой страницы: 2017-02-05; просмотров: 398; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 54.227.104.229 (0.111 с.)