Как представляются в компьютере вещественные числа?

Вещественными числами (в отличие от целых) в компьютерной технике называются числа, имеющие дробную часть.

При их написании вместо запятой принято писать точку. Так, например, число 5 — целое, а числа 5.1 и 5.0 — вещественные.

Для удобства отображения чисел, принимающих значения из достаточно широкого диапазона (то есть, как очень маленьких, так и очень больших), используется форма записи чисел с порядком основания системы счисления. Например, десятичное число 1.25 можно в этой форме представить так:

1.25*100 = 0.125*101 = 0.0125*102 = ... ,

или так:

12.5*10–1 = 125.0*10–2 = 1250.0*10–3 = ... .

Любое число N в системе счисления с основанием q можно записать в виде N = M * qp, где M называется мантиссой числа, а p — порядком. Такой способ записи чисел называется представлением с плавающей точкой.

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

Мантисса должна быть правильной дробью, первая цифра которой отлична от нуля: M из [0.1, 1).

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

Мантиссу и порядок q-ичного числа принято записывать в системе с основанием q, а само основание — в десятичной системе.

Примеры нормализованного представления:

Десятичная система Двоичная система

753.15 = 0.75315*103; -101.01 = -0.10101*211 (порядок 112 = 310)

-0.000034 = -0.34*10-4; -0.000011 = 0.11*2-100 (порядок -1002 = -410)

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

В качестве примера приведем характеристики форматов вещественных чисел, используемых IBM-совместимыми персональными компьютерами:

Форматы вещественных чисел Размер в байтах Примерный диапазон абсолютных значений Количество значащих десятичных цифр
Одинарный 10–45 … 1038 7 или 8
Вещественный 10–39 … 1038 11 или 12
Двойной 10–324 … 10308 15 или 16
Расширенный 10–4932 … 104932 19 или 20

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

При хранении числа с плавающей точкой отводятся разряды для мантиссы, порядка, знака числа и знака порядка:

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

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

1. Число 6.2510 = 110.012 = 0,11001•211 :

2. Число –0.12510 = –0.0012 = –0.1*2–10 (отрицательный порядок записан в дополнительном коде):

Как компьютер выполняет арифметические действия над нормализованными числами?

К началу выполнения арифметического действия операнды операции помещаются в соответствующие регистры АЛУ.

Сложение и вычитание

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

В процессе выравнивания порядков мантисса числа с меньшим порядком сдвигается в своем регистре вправо на количество разрядов, равное разности порядков операндов. После каждого сдвига порядок увеличивается на единицу.

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

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

Пример 1. Сложить двоичные нормализованные числа 0.10111•2–1 и 0.11011*210. Разность порядков слагаемых здесь равна трем, поэтому перед сложением мантисса первого числа сдвигается на три разряда вправо:

Пример 2. Выполнить вычитание двоичных нормализованных чисел 0.10101*210 и 0.11101*21. Разность порядков уменьшаемого и вычитаемого здесь равна единице, поэтому перед вычитанием мантисса второго числа сдвигается на один разряд вправо:

Результат получился не нормализованным, поэтому его мантисса сдвигается влево на два разряда с соответствующим уменьшением порядка на две единицы: 0.1101*20.

Умножение

При умножении двух нормализованных чисел их порядки складываются, а мантиссы перемножаются.

Пример 3. Выполнить умножение двоичных нормализованных чисел:

(0.11101*2101)*(0.1001*211) = (0.11101*0.1001)* 2(101+11) = 0.100000101*21000.

Деление

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

Пример 4. Выполнить деление двоичных нормализованных чисел:

0.1111*2100 : 0.101*211 = (0.1111 : 0.101) * 2(100–11) = 1.1*21 = 0.11•210.

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

Упражнения

4.1. Используя Правило Счета, запишите первые 20 целых чисел в десятичной, двоичной, троичной, пятеричной и восьмеричной системах счисления.
[ Ответ ]

4.2. Какие целые числа следуют за числами:

а) 12; е) 18; п) F16;
б) 1012; ж) 78; м) 1F16;
в) 1112; з) 378; н) FF16;
г) 11112; и) 1778; о) 9AF916;
д) 1010112; к) 77778; п) CDEF16 ?


[ Ответ ]

4.3. Какие целые числа предшествуют числам:

а) 102; е) 108; л) 1016;
б) 10102; ж) 208; м)2016;
в) 10002; з) 1008; н) 10016;
г) 100002; и) 1108; о) A1016;
д) 101002; к) 10008; п) 100016 ?


[ Ответ ]

4.4. Какой цифрой заканчивается четное двоичное число? Какой цифрой заканчивается нечетное двоичное число? Какими цифрами может заканчиваться четное троичное число?
[ Ответ ]

4.5. Какое наибольшее десятичное число можно записать тремя цифрами:

o а) в двоичной системе;

o б) в восьмеричной системе;

o в) в шестнадцатеричной системе?

[ Ответ ]

4.6. В какой системе счисления 21 + 24 = 100?

Решение. Пусть x — искомое основание системы счисления. Тогда 100x = 1 · x2 + 0 · x1 + 0 · x0, 21x = 2 · x1 + 1 · x0, 24x = 2 · x1 + 4 · x0. Таким образом, x2 = 2x + 2x + 5 или x2 - 4x - 5 = 0. Положительным корнем этого квадратного уравнения является x = 5.
Ответ. Числа записаны в пятеричной системе счисления.

4.7. В какой системе счисления справедливо следующее:

o а) 20 + 25 = 100;

o б) 22 + 44 = 110?

[ Ответ ]

4.8. Десятичное число 59 эквивалентно числу 214 в некоторой другой системе счисления. Найдите основание этой системы.
[ Ответ ]

4.9. Переведите числа в десятичную систему, а затем проверьте результаты, выполнив обратные переводы:

а) 10110112; е) 5178; л) 1F16;
б) 101101112; ж) 10108; м) ABC16;
в) 0111000012; з) 12348; н) 101016;
г) 0,10001102; и) 0,348; о) 0,А416;
д) 110100,112; к) 123,418; п) 1DE,C816.


[ Ответ ]

4.10. Переведите числа из десятичной системы в двоичную, восьмеричную и шестнадцатеричную, а затем проверьте результаты, выполнив обратные переводы:

а) 12510; б) 22910; в) 8810; г) 37,2510; д) 206,12510.
[ Ответ ]

4.11. Переведите числа из двоичной системы в восьмеричную и шестнадцатеричную, а затем проверьте результаты, выполнив обратные переводы:

а) 1001111110111,01112; г) 1011110011100,112;
б) 1110101011,10111012; д) 10111,11111011112;
в) 10111001,1011001112; е) 1100010101,110012.


[ Ответ ]

4.12. Переведите в двоичную и восьмеричную системы шестнадцатеричные числа:

а) 2СE16; б) 9F4016; в) ABCDE16; г) 1010,10116; д) 1ABC,9D16.
[ Ответ ]

4.13. Выпишите целые числа:

o а) от 1011012 до 1100002 в двоичной системе;

o б) от 2023 до 10003 в троичной системе;

o в) от 148 до 208 в восьмеричной системе;

o г) от 2816 до 3016 в шестнадцатеричной системе.

[ Ответ ]

4.14. Для десятичных чисел 47 и 79 выполните цепочку переводов из одной системы счисления в другую:


[ Ответ ]

4.15. Составьте таблицы сложения однозначных чисел в троичной и пятеричной системах счисления.
[ Ответ ]

4.16. Составьте таблицы умножения однозначных чисел в троичной и пятеричной системах счисления.
[ Ответ ]

4.17. Сложите числа, а затем проверьте результаты, выполнив соответствующие десятичные сложения:

а) 10111012 и 11101112; д) 378 и 758; и) A16 и F16;
б) 1011,1012 и 101,0112; е) 1658 и 378; к) 1916 и C16;
в) 10112, 112 и 111,12; ж) 7,58 и 14,68; л) A,B16 и E,F16;
г) 10112 , 11,12 и 1112; з) 68, 178 и 78; м) E16, 916 и F16.


[ Ответ ]

4.18. В каких системах счисления выполнены следующие сложения? Найдите основания каждой системы:


[ Ответ ]

4.19. Найдите те подстановки десятичных цифр вместо букв, которые делают правильными выписанные результаты (разные цифры замещаются разными буквами):



[ Ответ ]

4.20. Вычтите:

а) 1112 из 101002; д) 158 из 208; и) 1А16 из 3116;
б) 10,112 из 100,12; е) 478 из 1028; к) F9E16 из 2А3016;
в) 111,12 из 100102; ж) 56,78 из 1018; л) D,116 из B,9216;
г) 100012 из 1110,112; з) 16,548 из 30,018; м) ABC16 из 567816.


[ Ответ ]

4.21. Перемножьте числа, а затем проверьте результаты, выполнив соответствующие десятичные умножения:

а) 1011012 и 1012; д) 378 и 48;
б) 1111012 и 11,012; е) 168 и 78;
в) 1011,112 и 101,12; ж) 7,58 и 1,68;
г) 1012 и 1111,0012; з) 6,258 и 7,128.


[ Ответ ]

4.22. Разделите 100101102 на 10102 и проверьте результат, умножая делитель на частное.
[ Ответ ]

4.23. Разделите 100110101002 на 11002 и затем выполните соответствующее десятичное и восьмеричное деление.
[ Ответ ]

4.24. Вычислите значения выражений:

o а) 2568 + 10110,12 * (608 + 1210) - 1F16;

o б) 1AD16 - 1001011002 : 10102 + 2178;

o в) 101010 + (10616 - 110111012) 128;

o г) 10112 * 11002 : 148 + (1000002 - 408).

[ Ответ ]

4.25. Расположите следующие числа в порядке возрастания:

o а) 748, 1100102, 7010, 3816;

o б) 6E16, 1428, 11010012, 10010;

o в) 7778, 1011111112, 2FF16, 50010;

o г) 10010, 11000002, 6016, 1418.

[ Ответ ]

4.26. Запишите уменьшающийся ряд чисел +3, +2, ..., -3 в однобайтовом формате:

o а) в прямом коде;

o б) в обратном коде;

o в) в дополнительном коде.

[ Ответ ]

4.27. Запишите числа в прямом коде (формат 1 байт):

а) 31; б) -63; в) 65; г) -128.
[ Ответ ]

4.28. Запишите числа в обратном и дополнительном кодах (формат 1 байт):

а) -9; б) -15; в) -127; г) -128.
[ Ответ ]

4.29. Найдите десятичные представления чисел, записанных в дополнительном коде:

а) 1 1111000; б) 1 0011011; в) 1 1101001; г) 1 0000000.
[ Ответ ]

4.30. Найдите десятичные представления чисел, записанных в обратном коде:

а) 1 1101000; б) 1 0011111; в) 1 0101011; г) 1 0000000.
[ Ответ ]

4.31. Выполните вычитания чисел путем сложения их обратных (дополнительных) кодов в формате 1 байт. Укажите, в каких случаях имеет место переполнение разрядной сетки:

а) 9 - 2; г) -20 - 10; ж) -120 - 15;
б) 2 - 9; д) 50 - 25; з) -126 - 1;
в) -5 - 7; е) 127 - 1; и) -127 - 1.


[ Ответ ]

Наши рекомендации