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




Разрядность задана, она не может меняться.

Разрядка сетки n-1........0 все это учитывается в алгоритмах работы.

– знаковый разряд.
0 – “+”
1 – “-“


- мантисса числа (число с фиксированной точкой).
- порядок числа (целое число со знаком).
Мантисса всегда хранится в нормализованном виде, т.е. после знакового разряда всегда число отличное от 0.

Число с фиксированной запятой — формат представления вещественного числа в памяти ЭВМ в виде целого числа. При этом само число x и его целочисленное представление связаны формулой

, где z — цена (вес) младшего разряда.

Пример арифметики с фиксированной запятой — перевод рублей в копейки. В таком случае, чтобы запомнить сумму 12 рублей 34 копейки, мы записываем в ячейку памяти число 1234.

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

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

Название «фиксированная запятая» произошло из-за простой метафоры: между двумя заранее определёнными разрядами ставится запятая, превращая, например, целое число 1234 в дробное 12,34.

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

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

1) прямой код;

2) дополнительный код.

Все два способа используют самый левый (старший) разряд битового набора

длины k для кодирования знака числа: знак “плюс” кодируется нулем, а “минус” —

единицей. Остальные k-1 разрядов (называемые мантиссой или цифровой частью)

используются для представления абсолютной величины числа.

1) Прямой код.

· Целое число.

· Правильная дробь.

ЗЧЧ - значащая часть числа.

Пример.

2) Дополнительный код.

· Целое число.

Ноль всегда положительное число.

· Правильная дробь.

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

1. Если число, записанное в прямом коде, положительное, то к нему дописывается старший (знаковый) разряд, равный 0, и на этом преобразование заканчивается;

2. Если число, записанное в прямом коде, отрицательное, то все разряды числа инвертируются, а к результату прибавляется 1. К получившемуся числу дописывается старший (знаковый) разряд, равный 1.

Пример.


Выявления переполнения разрядной сетки при сложении чисел в дополнительном коде.

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

Пример.

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


 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-07-22 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: