Лекция: Представление вещественных чисел
Вещественные числа представляются в ПК в форме с плавающей точкой.
Этот формат использует представление вещественного числа R в виде произведения мантиссы m на основание системы счисления p в некоторой целой степени n которую называют порядком: R=m*pn
Представление числа в форме с плавающей точкой неоднозначно.
Например: 25.324=25324*101=0.0025324*104=2532.4*10-2
В ЭВМ используют нормализованное представление числа в форме с плавающей точкой. Мантисса в нормализованном представлении должна удовлетворять условию:
0.1p m<1p
Иначе говоря, мантисса меньше 1 и первая значащая цифра — не 0.
В памяти компьютера мантисса представляется как целое число, содержащее только значащие цифры (0 целых и запятая не хранится). Следовательно, внутреннее представление вещественного числа сводиться к представлению пары целых чисел: мантиссы и порядка.
Например: 4-x байтовая ячейка памяти. В ячейке должна содержаться следующая информация о числе:
— знак числа;
— порядок;
— значащие цифры мантиссы.
| МАНТИССА | |||
| 1-й байт | 2-й байт | 3-й байт | 4-й байт |
В старшем бите 1-го байта хранятся знак числа: 0 обозначает плюс, 1 — минус.
Оставшиеся 7 бит 1-го байта содержат машинный порядок. В следующих трех байтах хранятся значащие цифры мантиссы (24 разряда).
В семи двоичных разрядах помещаются двоичные числа в диапазоне от 0000000 до 1111111. Значит, машинный порядок изменяется в диапазоне от 0 до 127 (в десятичной системе счисления). Всего 128 значений. Порядок, очевидно, может быть как положительным так и отрицательным. Разумно эти 128 значений разделить поровну между положительным и отрицательным значениями порядка: от -64 до 63.
Машинный порядок смещен относительно математического и имеет только положительные значения. Смещение выбирается так, чтобы минимальному математическому значению порядка соответствовал нуль.
Связь между машинным порядком (Мр) и математическим (р) в рассматриваемом случае выражается формулой:
Мр = р + 64
Полученная формула записана в десятичной системе. В двоичной системе формула имеет вид: Mp2=p2+10000002
Для записи внутреннего представления вещественного числа необходимо:
1) перевести модуль данного числа в двоичную систему счисления с 24 значащими цифрами;
2) нормализовать двоичное число;
3) найти машинный порядок в двоичной системе счисления;
4) учитывая знак числа, выписать его представление в 4-х байтовом машинном слове.
Пример
Записать внутреннее представление числа 250,1875 в форме с плавающей точкой.
Решение
1) Приведем его в двоичную систему счисления с 24 значащими цифрами: 250.187510=11111010, 0011000000000000002.
2) Запишем в форме нормализованного двоичного числа с плавающей точкой: 0,111110100011000000000000*1021000. Здесь мантисса, основание системы счисления (210=102) и порядок (810=10002) записаны в двоичной системе.
3) Вычислим машинный порядок в двоичной системе счисления: Mp2= 1000 + 100 0000 =100 1000.
4) Запишем представление числа в 4-х байтовой ячейке памяти с учетом знака числа:
Шестнадцатеричная форма: 48FA3000.
Пример
По шестнадцатеричной форме внутреннего представления числа в форме с плавающей точкой C9811000 восстановить само число.
Решение 1) Перейдем к двоичному представлению числа в 4-х байтовой ячейке, заменив каждую шестнадцатеричную цифру 4-мя двоичными цифрами:
1100 1001 1000 0001 0001 0000 0000 0000
2) Заметим, что получен код отрицательного числа, поскольку в старшем разряде с номером 31 записана 1. Получим порядок числа: р=10010012 -10000002=10012=910.
3) Запишем в форме нормализованного двоичного числа с плавающей точкой с учетом знака числа:
-0,100000010001000000000000 *21001
4) Число в двоичной системе счисления имеет вид: -100000010.0012.
5) Переведем число в десятичную систему счисления:
-100000010.0012= -(1*28+1*21+1*2-3)= -258.12510
Варианты заданий
1) Переведите числа в десятичную систему, а затем проверьте результаты, выполнив обратные переводы:
| 110100, Х2; | 123, Х8; | 1DE,CХ16. |
2) Переведите числа из двоичной системы в восьмеричную и шестнадцатеричную, а затем проверьте результаты, выполнив обратные переводы:
| 1001111110111, Х2; | 1011110011100, Х2; |
3) Сложите числа, а затем проверьте результаты, выполнив соответствующие десятичные сложения:
| 10112, Х2 и 111,12; | 7,58 и Х,68; | A, Х16 и E,F16; |
4) Перемножьте числа, а затем проверьте результаты, выполнив соответствующие десятичные умножения:
| 1012 и 1111, Х2; | 6,258 и 7, Х8. |
Примечание: Для заданий (1-4) вместо Х необходимо подставить свой номер варианта в журнале группы в соответствующей заданию системе счисления.
5) Получить двоичную форму внутреннего представления целого числа в 2-х байтовой ячейке.
6) Получить шестнадцатеричную форму внутреннего представления целого числа 2-х байтовой ячейке.
7) По шестнадцатеричной форме внутреннего представления целого числа в 2-х байтовой ячейке восстановить само число.
8) Получить шестнадцатеричную форму внутреннего представления числа в формате с плавающей точкой в 4-х байтовой ячейке.
9) По шестнадцатеричной форме внутреннего представления вещественного числа в 4-х байтовой ячейке восстановить само число.
| Номера заданий | |||
| № Варианта | |||
| -1450 | F67D | 26.28125 | C5DB0000 |
| -1341 | F7AA | -29.625 | 45D14000 |
| -1983 | F6D7 | 91.8125 | C5ED0000 |
| -1305 | F700 | -27.375 | 47B7A000 |
| -1984 | F7CB | 139.375 | C5D14000 |
| -1453 | F967 | -26.28125 | 488B6000 |
| -1833 | F83F | 27.375 | C7B7A000 |
| -2331 | F6E5 | -33.75 | 45DB0000 |
| -1985 | F8D7 | 29.265 | C88B6000 |
| -1689 | FA53 | -139.375 | 45ED0000 |
| -2101 | F840 | 333.75 | C6870000 |
| -2304 | FAE7 | -333.75 | |
| -2345 | F841 | 224.25 | C9A6E000 |
| -2134 | FAC3 | -91.8125 | 49A6E000 |
| -2435 | FA56 | 33.75 | 48E04000 |
| -1453 | F6D7 | 91.8125 | 47B7A000 |
| -1833 | F700 | -27.375 | C5D14000 |
| -2331 | F7CB | 139.375 | 488B6000 |
| -1985 | F967 | -26.28125 | C7B7A000 |
| -1689 | F83F | 27.375 | 45DB0000 |
| -2101 | F6E5 | -33.75 | C88B6000 |
| -2304 | F8D7 | 29.265 | 45ED0000 |
| -2345 | FA53 | -139.375 | C6870000 |
| -2134 | F840 | 333.75 | |
| -1453 | FAE7 | -333.75 | C9A6E000 |