Представление данных
Формы с плавающей и фиксированной точкой
Существует 2 способа предcтавления чисел: с плавающей и фиксированной точкой.
|
Представление числа в форме с фиксированной точкой. |
Общий вид представления числа с фиксированной точкой:
Зн |
2-1 |
... |
2-n |
Зн |
2-1 |
... |
2-15 |
< 2 байта, 16 разрядов > |
Зн |
2-1 |
... |
2-31 |
< 4 байта, 32 разрядa> |
В общем случае фиксированная точка (естественная форма представления чисел) характеризуется значением m (m = соnst). В этом случае для всех чисел, с которыми оперирует машина, положение точки постоянно. Можно увидеть, что при m = 0 все числа, с которыми оперирует машина, меньше 1 и представлены в виде правильных дробей.
В формате с фиксированной точкой разрядная сетка имеет n + 1 разряд:
xmax0.111...1 - 2n
xmin0.000...1 * 2n
0 x2n
При использовании чисел с фиксированной точкой может возникнуть переполнение.
|
Представление чисел в форме с плавающей точкой. |
Такое представление числа соответствует нормальной форме записи:
¦ (x1p-1 + x2p-2 + ... + xnp-n)
Здесь p-n - мантисса, pm - порядок.
Пример:
133,21 = 102*1.3321, 102- порядок, 1.3321- мантисса. 1332.1 = 103*1.3321 0.13321 = 10-1*1.3321
При использовании формата с плавающей точкой пользуются понятием нормализованного представления чисел.
Нормализованным числом называется число, мантисса которого удовлетворяет следующим неравенствам:
Формы представления чисел со знаками
Распространёнными формами представления чисел со знаками является их представление в прямом, обратном и дополнительном коде
Прямой код числа образуется кодированием знака числа нулём, если число положительно и единицей, если число отрицательно (для двоичной системы)
Для общего случая (q - 1) - если число отрицательно, и 0 - если число положительно. q - основание системы счисления.
Код знака записывается перед старшей цифрой числа и отделяется от неё точкой:
-1.01 = 1.101
Прямой, обратный и дополнительный коды положительных чисел совпадают между собой.
Обратный код отрицательного числа образуется из прямого кода, заменой его цифр на их дополнения до величины q-1. Код знака сохраняется без изменения.
Пример :
+12310 = 0.123пр. = 0.123об. -12310 = 9.123пр = 9.876об. +3А7С0016 = 0.3А7С00пр = 0.3А7С00об. -3А7С0016 = F.3А7С00пр = F.C583FFоб. -1012 = 1.101пр = 1.010об.
Замена цифр их дополнениями для двоичной системы совпадает с операцией инверсии, то есть нули заменяются единицами, единицы - нулями. Знак принимает значение, равное единице.
Дополнительный код отрицательного числа образуется из обратного увеличением на 1 его младшего разряда. При этом перенос из знакового разряда игнорируется.
Пример:
+23610 = 0.236пр.= 0.236об.= 0.236доп. -23610 = 9.236пр.= 9.763об.= 9.764доп. -1012 = 1.101пр.= 1.010об.= 1.011доп. -3А7С16 = F.3А7Спр.= F.C583об.= F.C584доп.
Правила перевода из прямого кода в обратный и из обратного в прямой, а также из прямого в дополнительный и из дополнительного в прямой совпадают между собой.
