Читайте также:
|
|
Числовые величины, которые могут принимать любые значения (целые и дробные) называются вещественными числами. В математике также используется термин «действительные числа». Решение большинства математических задач сводится к вычислениям с вещественными числами. Вещественные числа в памяти компьютера представляются в форме с плавающей точкой.
Форма с плавающей точкой использует представление вещественного числа А в виде произведения мантиссы m на основание системы счисления q в некоторой целой степени p, которую называют порядком:
А=m x qp
Например, число 139,76 можно записать в виде: 0,13976х103. Здесь m=0,13976 – мантисса, p=3 – порядок. Порядок указывает, на какое количество позиций и в каком направлении должна «переплыть», т.е. сместиться десятичная в мантиссе. Отсюда название «плавающая точка». Однако справедливы и следующие равенства:
139,76=13,976х101 = 1,3976х102 = 0,013976х104 = 13976 х10-2
Получается, что представление числа в форме с плавающей точкой неоднозначно? Чтобы не было неоднозначности, в ЭВМ используют нормализованное представление числа в форме с плавающей точкой. Мантисса в нормализованном представлении должна удовлетворять условию:
0.1q £m< 1q,
то есть мантисса меньше единицы и первая значащая цифра - не ноль. Следовательно, для рассмотренного числа нормализованным представлением будет: 0,13976х103.
В разных типах ЭВМ применяются различные варианты представления чисел в форме с плавающей точкой. Для примера рассмотрим один из возможных.
Пусть в памяти компьютера вещественное число представляется в форме с плавающей точкой в двоичной системе счисления (q=2) и занимает ячейку размером 4 байта. В ячейке должна содержаться следующая информация о числе: знак числа, порядок и значащие цифры мантиссы. Вот как эта информация располагается в ячейке:
± маш. порядок | М А Н | Т И С | С А |
1-й байт 2-й байт 3-й байт 4-й байт
В старшем бите 1-го байта хранится знак числа. В этом разряде 0 обозначает плюс, 1 – минус. Оставшиеся 7 бит первого байта содержат машинный порядок. В следующих трех байтах хранятся значащие цифры мантиссы.
Что такое машинный порядок? В семи двоичных разрядах помещаются двоичные числа в диапазоне от 0000000 до 1111111. В десятичной системе это соответствует диапазону от 0 до 127. Всего 128 значений. Знак порядка в ячейке не хранится. Но порядок, очевидно, может быть как положительным, так и отрицательным. Разумно эти 128 значений разделить поровну между положительными и отрицательными значениями порядка. В таком случае между машинным порядком и истинным (назовем его математическим) устанавливается следующее соответствие:
Машинный порядок | … | … | |||||||||
Математический порядок | -64 | -63 | -62 | -61 | … | … |
Если обозначить машинный порядок Мq, а математический q, то связь между ними выразится формулой:
Мq = q + 64
Итак, машинный порядок смещен относительно математического на 64 единицы и имеет только положительные значения. Полученная формула записана в десятичной системе счисления. В двоичной системе счисления формула имеет вид:
Мq = q + 10000002
При выполнении вычислений с плавающей точкой процессор это смещение учитывает.
Таким образом, из вышесказанного вытекает следующий алгоритм для получения представления действительного числа в памяти ЭВМ:
1) Перевести модуль данного числа в двоичную систему счисления;
2) Записать полученное двоичное число в нормализованном виде;
3) Определить машинный порядок с учетом смещения;
4) Учитывая знак заданного числа (0 – положительное; 1 – отрицательное), записать его представление в памяти ЭВМ.
Например, запишем внутреннее представление числа 139,76 в форме с плавающей точкой в 4-х байтовой ячейке:
1) Переведем десятичное 139,76 и запишем его 24-значащими цифрами:
139,7610 = 10001011,11000010100011112
2) Запишем полученное двоичное число в форме нормализованного двоичного числа с плавающей точкой:
10001011,11000010100011112 = 0,1000101111000010100011112 х101000,
где 0,1000101111000010100011112 – мантисса;
10 – основание системы счисления (210=102);
1000 – порядок (810=10002).
3) Определим машинный порядок:
Mq2 = 1000 + 1000000 = 1001000
4) Запишем представление числа в ячейке памяти:
Для того чтобы получить внутренне представление отрицательного числа -139,7610 достаточно в полученном выше представлении заменить в разряде знака числа 0 на 1. Никакого инвертирования, как для отрицательных целых чисел, здесь не происходит.
1) Определить диапазон представления целых чисел без знака в формате с фикс. запятой.
· 8 бит: 0…28–1 = 0…255
2) Определить диапазон представления целых чисел со знаком в формате с фикс. запятой.
· 8 бит: –27…–1 0…+27–1 = –128…+127
3) Определить диапазон представления вещественных чисел в формате с плавающей запятой
· 32 бита (8 бит порядок, 24 бита мантисса):
1´2–(2^7–2)…2´2+(2^7–1) = 2–126…2+128 = 1,1´10–38…3,4´10+38
· (11 бит порядок, 53 бита мантисса):
1´2–(2^10–2)…2´2+(2^10–1) = 2–1022…2+1024 = 2,2´10–308…1,7´10+38
· (15 бит порядок, 65 бита мантисса):
1´2–(2^14–2)…2´2+(2^14–1) = 2–16.382…2+16.384 = 3,3´10–4932…1,1´10+4932
· значения ±1.000…´2111… – зарезервированы стандартом IEEE (ANSI) для обозначения ±¥.
· значения +1.000…´2000… – зарезервированы стандартом IEEE (ANSI) для обозначения 0.
· значения –1.000…´2000… – зарезервированы стандартом IEEE (ANSI) для обозначения –0.
· значения +1.xxx…´2111… – зарезервированы стандартом IEEE (ANSI) для обозначения NaN.
4) Представить числа в формате целого числа с фиксированной запятой 8 бит:
· +63: прямой код – [0011 1111]
· –63: обратный код – [1100 0000], дополнительный код – [1100 0001].
5) Записать числа по их внутреннему представлению в ЭВМ в десятичной системе счисления:
· [0111 1110] прямой код [0111 11102] = +126
· [1100 0000] дополнительный код [0011 1111+1] = [0100 00002] = –64
6) Сложить два числа в дополнительном восьмиразрядном двоичном коде:
· 30 и –13
+30: прямой код – [0001 1110],
–13: прямой код – [0000 1101], обратный код – [1111 0010], дополн. код – [1111 0011].
прямой код – [0001 0001] = 1710
7) Представить числа +127,125 и –127,125 в формате вещественного числа с плавающей запятой 32 бита.
Структура представления чисел в ЭВМ:
· +125,125: прямой код 111 1101,001 = 1,1111 0100 1´26,
смещенный порядок 6+(27–1) = 6+127 = 133 = 1000 01012
8) Записать число в десятичной системе счисления по его внутреннему представлению в ЭВМ:
· 01000010011111111000000000000000
0 10000100 11111111000000000000000
Смещенный порядок – [100001002] = [13210], несмещенный порядок – [132-127] = [+5].
Число – [+1,1111 1111´2+5] = [+111111,1112] = [63,87510].
Тема 1.5 Основные понятия алгебры логики
Цель работы
Определение истинности и ложности высказываний, применение логических операций, представление логических выражений в виде выражений, выполнение упрощений выражений.
Дата добавления: 2014-11-24; просмотров: 38 | Поможем написать вашу работу | Нарушение авторских прав |
<== предыдущая лекция | | | следующая лекция ==> |
Представление вещественных чисел в формате с плавающей запятой | | | Работу выполнил__________________ Работу принял_________________ |