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

Диапазон представления чисел с фиксированной запятой: для байта - от - 12810 до +12710; для слова — от -32768ю до +32767ю. При выполнении операций над числами, представленными в формате с фиксированной запятой, они масштабируются таким образом, чтобы каждое число лежало в интервале (-1, +1). Другими словами, в этом случае ЭВМ оперирует только с числами, по модулю не превос ходящими единицы. При этом необходимо следить за тем, чтобы в результате операций результат не получился большим, чем 2*— 1, где k — число разрядов, отведенных для представления в машине. Такая опасность есть при выполнении операций сложения и деления. Опас ность представляют также операции вычитания и умножения. При вычитании может получиться так, что разность станет числом меньшим, чем представляется в машине, и результат исчезнет. При многократном умножении (из-за того, что умножаются числа, мень шие единицы) может произойти то же самое. Поэтому при ис пользовании формата представления чисел с фиксированной запятой приходится следить как за случаями возможного переполнения разрядной сетки машины, так и за случаями, связанными с появ лением машинного нуля. Необходимость постоянно следить за тем, чтобы числа в машине не вышли за пределы интервала (—1, +1), а так же неизбежное в таких устройствах накопление абсолютной погреш ности вычислений из-за перемасштабирования, при котором цифры младших разрядов (а именно в них накапливается абсолютная погрешность) передвигаются в старшие разряды, привели к тому, что в универсальных ЭВМ представление чисел с фиксированной запятой практически перестало применяться. Оно сохраняется в специализи-

рованных вычислительных системах, где диапазон изменения чисел заранее проанализирован, в некоторых микропроцессорах и микро-ЭВМ.

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

x = ±mN±f',

где т — мантисса, р — характеристика (или порядок) числа.

Если \т\ < 1, то запись числа называется нормализованной слева. Следующие примеры показывают, как можно представить любое число в форме с плавающей запятой:

а) в десятичной системе счисления

372, 95 = 0, 37295 XI О3;

25 = 0,025 х 103-0,25х102;

0,0000015 = 0,15 х 10~5 = 0,015 х 10 ^

б) в двоичной системе счисления

11010, 1101= 0, Of 1010Л01Х26 =0,11010110! х25;

0,011011=0,11011x2-';

0,1=0,1x2°

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

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

Число называют нормализованным справа, если после запятой в мантиссе стоит не нуль. Например, числа 0,00076т и 0,000112 представленные соответственно в виде 0,076 х 10 и 0,011 х 2~2, не являются нормализованными справа, а в виде 0,76 х 10~3 и О, И х 2~~3 являются такими.

В дальнейшем под нормализацией числа будем понимать норма лизацию справа.

Нормализованное число одинарной точности, представленное в формате с плавающей запятой, записывается в память следующим образом: знак числа - в бите 15 первого слова (0 - для положитель ных и 1 - для отрицательных чисел); порядок размещается в битах 7 -14 первого слова, а мантисса занимает остальные 23 бита в двух словах. Нормализованное число двойной точности записывается в

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

Порядок числа с плавающей запятой изменяется в диапазоне от -128ю (2008) до +127ю (1778) и запоминается увеличенным на 128]0 (2008). Такой способ представления порядка называется смещенным.

Следует иметь в виду, что хотя для мантиссы отведены 23 разряда -для чисел.одинарной точности и 55 разрядов - для чисел двойной точности, в операциях участвуют 24 и 56 разрядов соответственно, так как старший разряд мантиссы нормализованного числа не хранится, т.е. имеет место так называемый скрытый разряд. Однако при аппаратном выполнении операций этот разряд автоматически восстанавливается и учитывается при выполнении операций. Порядок числа также учитывает скрытый старший разряд мантиссы.

Также заметим, что нормализованная мантисса в двоичной системе счисления всегда представляется десятичным числом т, лежащим в диапазоне 0,5 < т < I.

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

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

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

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

Контрольные вопросы, упражнения и задачи

1. Назовите основные способы измерения информации.

2. В чем состоит суп, энтропийного подхода к измерению информации?

3. Перечислите основные классы алгоритмических моделей.

4. Поясните работу машины Тьюринга.

5. Что такое алгоритмически неразрешимая проблема?

6. Что такое позиционная система счисления?

7. Что называется основанием системы счисления?

8. Какие числа называются базисными?

9. Какой смысл вкладывается в понятие записи и представления числа в /С-ичной
системе счисления?

10.Какая система счисления называется смешанной?

11.Сформулируйте утверждения для смешанных систем счисления.

12.Как переходить от записи числа в восьмеричной системе счисления к
записи в двоичной системе счисления и обратно?

13. Сформулируйте правила перевода чисел из одной системы счисления в
другую.

14. Что такое элемент и ячейка памяти?

15. Что такое машинное слово?

16.Что такое бит и байт?

17.Сформулируйте основные свойства числовой системы ЭВМ.

18. Почему при выполнении арифметических операций на ЭВМ возникают

ситуации, приводящие к неверному результату?

19. Что такое дополнение до единицы и дополнение до двух?

20. Зачем нужны индикаторы переноса и переполнения?

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

22. Как представляются целые и вещественные числа в памяти ЭВМ?
А 23. Как представляются символьные данные в памяти ЭВМ?

24. Запишите в десятичной системе следующие числа;

1) 1000112; 2) IlOll.Olj;3) 11203; 4) 102]. 13; 5) 13324; 6) 322.124; 7} 20415;

8) 4013.1,; 9)43 Пб; 10)1051.36; И)10П7; 12) 10б.27; 13)22078; 14)35.68; 15)1729:
I6)101.39; I7)a9elI6; 18)I5a,6; 19)2faI6; 20)3с.11б; 21)2fb,6; 22)19.a16; 23)2f.a,6; 24)1с.4!6.

25. Переведите десятичные числа в заданные системы счисления;

I) 36 = _^; 2) 197 - __j; 3) 984 =_ 4; 4)63 =_s; 5) 996 = „_6; 6) 899 = __7;

7) 98=_8; 8) 769 =__ 16; 9)397=___ 16; 10) 8769 =,6; 11) 5397 =__,6;12) 6997 =_|6.

* 26. Преобразуйте числа (при указанном основании системы счисления) в представление, указанное в правой части;

]) 1425 =_,<,; 2)142Ш =_j; 3) 142* =_10; 4) 142]0 =_8; 5) 142=5 =__?; 6)142)= 5;

7)100И00102=__4;8)100П00102=_В; 9)1001100102= |0; 10)316а=_4; 11)3168=^;

12)3168=_______ ш;13)12124 = 8; 14) 12124 = __з; 15) I212f=_*

27. Преобразуйте десятичные числа в двоичные и восьмеричные:
1)20;2)5;3) 15; 4)32; 5)65; 6) 127; 7) 1024; 8)2047; 9) 129; 10) 1135; 11)92;

'12) 109; 13)36; 14)55.

28. Преобразуйте двоичные числа в восьмеричные и десятичные:

1) 101; 2) 1001; 3) 1101; 4) 100001; 5) НИИ; 6) 1100100; 7) 100100; 8) 101010;

9) 100000; 10)111011.

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

' 1) 102235; 2) 16; 3) 47; 4) 77777; 5) 177776; 6) 70450: 7) 15136; 8) 17332; 9) 11673.

30.Переведите шестнадцатеричные числа в восьмеричные; 1) If; 2)e2; 3)fl; 4)
abed; 5) ffff; 6) Iffe; 7) f67a5dc; 8) 799a6f3; 9)d5a92f.

31.Переведите в двоичную систему (точные) десятичные числа: 1) 0.625;
2) 0.28125; 3) 0.0078125; 4) 0.04525; 5) 56.25; 6) 127.75; 7) 7/16; 8) -3/8; 9) 1/4;
10)-15х2-'5; Ц)-8х2-'3; 12)0.69; 13)0.375.

32.Переведите в двоичную систему (приближенные) десятичные числа: 1)0.01;
2) 0.122; 3) 0.1207; 4) 0.3; 5) 0.03; 6) 345.23; 7) 12563.17.

33.Переведите в восьмеричную систему (приближенные) десятичные числа:
1) 0.543; 2) 0.1207;3) 0.17;4) 195.35.

34. Переведите в двоичную систему приближенные десятичные числа, не
используя более одной операции деления: 1) 86.25; 2) -56,028; 3) 69.57.

35. Определите десятичное значение числа, представленного в двоичной системе
счисления с помощью п единиц.

36. Докажите, что число цифр, необходимых для представления числа по
основанию п, может быть в k раз больше числа цифр, необходимых при основании п k.
(Например, для двоичного представления числа может потребоваться в 3 раза больше
цифр, чем нужно для восьмеричного представления.)

37. Переведите в двоичную систему счисления заданные десятичные числа,
предварительно переведя их а) в восьмеричную систему, б) в шестнадцатеричную
систему: I) 20473; 2) 4567; 3) 8159; 4) 6732; 5) 3365; 6) 9127; 7) 7024; 8) 12047.

38. Переведите в четверичную, восьмеричную и шесшадцатеричную системы
следующие двоичные числа;

1)11110101000100000100ШШ00101000Ю101.00Ш 1110110001010101; 2)10001010101001010101000010100001. 110I010100I10001001010011001; 3)11001010101010110100101010010100101001.10100100010(0010000010.

39. Переведите в двоичную систему счисления

.1) четверичные числа; 333320133.33200133; 3222302113.32230001332;

2)восьмеричные числа; 777777777.777777777; 6767676767,67676767;

3)шестнадцатеричные числа; i79aOc04.08a5e4; fabbe9ddc80.de2f01.

40. Запишите в двоично-десятичной системе десятичные числа: i) 201; 2) -999;
3) 17.094; 4) 410.3052; 5) 5782.3П.

41. Какие десятичные числа имеют следующую двоично-десятичную запись:
1)0.101010010101; 2) 10010010.01110101?

42.Переведите в двоичную систему следующие двоично-десятичные числа: 1)
100101 П01010010;2) 1000000100011000; 3)0001010000101000.

43.Покажите, что алгоритм сложения и вычитания двух чисел 132 и 33 по
основанию 4, реализованный по правилам «переносов» и «заемов» аналогично
десятичной системе счисления (здесь только четыре единицы младшего разряда
объединяются в одну единицу старшего разряда), есть просто результат сложения и
вычитания двух полиномов: 2+3х*+2х° и Зх]+3х° (где д=4) с соответствующей
группировкой и приведением коэффициентов.

44. Выполните указанные арифметические действия в заданных системах
счисления:

1) 1267 + 6627=?; 2) 1268+662„ =?; 3) 10П012+ 110112=?; 4) 772048 ~16558 =?; 5) 1011102 -111012 =?; 6) 15668 -5768 =?; 7) 63468 х 4478 =?; 8) Ю446 х 305б =?; 9) 10П2х110Ь =?; 10) 5728: 248=?; П) 1310б:346=?; 12)236:5б=?; 13) 65127+5667 -?; I4)3765B+122g=?; 15) 10122=?; 16) 70018-6578 =?; 17) lOOOl^l П12=?; 18)6000^ -^657 =?; 19) П8 х Нв =?; 20) 1356 х 23б =?; 21) 11П2 х 1012=?; 22) 6J.43S:78=?; 23) 134326: 546 =?; 24) 40336: 236 =?; 25) a81c[6+9fb6,6 =?; 26) е85а,6 -6сЬ9 =?; 27)а1с16х616=?; 28) 1с|6 х аЬ,6=?.

ГЛАВА 4


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: