Теория к ВМСС (987279), страница 4
Текст из файла (страница 4)
3.4 Перевод произвольных чисел
Числа, имеющие целую и дробные части, переводятся в два этапа: вначале целая часть, а затем дробная. В результате получаем число, записанное в новой системе счисления.
Пример 11. Перевести неправильную дробь 118.37510 и в двоичную систему счисления.
Для перевода в двоичную систему сначала переведём последовательным делением целую часть:
1 18 2
1
18 59 2
0 58 29 2
1 28 14 2
1 14 7 2
0 6 3 2
1 2 1 2
1 0 0
1
В результат имеем:
11810=11101102
Далее переведем в двоичную систему счисления дробную часть методом последовательного умножения:
0,375
2
0 ,750
2
1 ,500
2
1,000
2
0,000
В результате имеем:
0,37510=0,0112
Окончательный результат имеет вид:
118,37510=1110110,0112
3.5 Смешанная система счисления
В смешанной системе счисления каждая цифра, заданного в Q-ичной системе счисления, заменяется соответствующим ее представлением в P-ичной счисления. Такая система называется
P-Q-ичной.
Рассмотрим двоично-десятичную систему счисления, как пример смешанной системы счисления, где каждая цифра числа, представленного в десятичной системе счисления, заменяется соответствующим ее представлением в двоичной системе счисления. Двоично-десятичная система счисления нашла широкое применение во многих ЭВМ.
Например, десятичное число 931 в двоично-десятичной системе счисления запишется в виде:
1001 0011 00012-10.
T. е. каждая цифра десятичного числа (от 0 до 9) заменяется тетрадой в двоичной системе счисления.
Рассмотрим еще один пример.
Пример. Число 273,5910 перевести в двоичнодесятичную систему счисления.
Перевод осуществим следующим образом
2 | 7 | 3, | 5 | 9 |
0010 | 0111 | 0011, | 0101 | 1001, |
т. е. 273, 5910 = 001001110011, 010110012-10.
Двоично-десятичную запись числа используют непосредственно или как промежуточную форму записи между обычной десятичной его записью и машинной двоичной. Вычислительная машина сама по специальной программе переводит двоично-десятичные числа в двоичные и обратно.
Для смешанных систем счисления характерно, что количество разрядов, отводимых под каждую цифру, определяется максимальной цифрой базиса Q-ичной системы счисления. В десятичной системе счисления это цифра 9, для представления которой в двоичной системе требуется четыре разряда. Особый интерес представляет случай, когда Q=Pm, где m-целое число. В этом случае представление числа в Р-ичной системе счисления совпадает с его представлением в смешанной P-Q-ичной системе счисления. Приводить доказательство этого утверждения мы не будем, покажем его только на примере.
Пример. Перевести восьмеричное число 741 в двоичную и двоично-восьмеричную системы счисления. Сначала переведем число 741 в двоичную систему счисления, получим:
7418 = 111 100 0012 .
Затем переведем по отдельности каждую цифру числа 741 в двоичную систему счисления, получим:
7418 = 111 100 0012 = 111 100 0012-8.
Как видим, представления числа в двоичной и двоично-восьмеричной системах счисления совпадают.
Отметим, что, приведенные способы перевода чисел из одной системы счисления в другую представляют собой достаточно трудоемкий процесс. Однако в современных ЭВМ такой перевод осуществляется самой машиной автоматически по стандартным подпрограммам. К ручному переводу обращаются в исключительных случаях.
В заключение этого раздела предлагается ответить на некоторые вопросы и выполнить ряд упражнений для закрепления усвоенного материала.
Вопросы и упражнения
1. Составьте таблицы сложения и умножения для восьмеричной системы счисления. Выполните указанные действия над числами, заданными в восьмеричной системе счисления:
a) 742+34–657; б) 17623; в) 214 : 4.
2. Переведите числа из одной системы счисления в другую:
а) из двоичной в шестнадцатеричную:
1) 10 1111 1000 0101 1001;
2) 0,1101 1100 1;
3) 100 1111 0001,1100 1100 001;
б) из восьмеричной в десятичную:
762; 454; -4326;
в) из десятичной в шестнадцатеричную:
9854; -77659; 4591;
г) из шестнадцатеричной в пятеричную:
B4AA; FF9A3; -C7A99;
д) из шестнадцатеричной в двоичную:
998C; FF77; DA0774;
3. Переведите числа из одной системы счисления в другую, сохранив заданную точность:
а) из десятичной в двоичную:
253,2 ; 794,15 ; -6,4 ;
б) из восьмеричной в пятеричную:
647,5; 342,24; 71,6;
в) из семеричной в десятичную:
-632,2; 562,32; 4562,5.
4. Переведите числа в смешанную систему счисления:
а) из десятичной в двоично-восьмеричную:
692,54; 7428,41; 196,7591;
б) из восьмеричной в двоично-восьмеричную:
735,117; -5736,33; 0,047;
5. Определите, что больше:
а) 6378 или 43910;
б) 1110 1111 0011,1001 12 или 516;
в) FD516 или 841910 .
6. Найти шестизначное частное (с округлением) восьмеричных чисел:
а) 0.164507 : 0.172300;
б) (-0.372711) : 0.671121.
7. Составить таблицы перехода от целых десятичных чисел 0,1,…,15 к шестнадцатеричным, восьмеричным, двоичным и двоично-десятичным числам.
8. Перевести следующие числа из двоичной системы счисления в восьмеричную:
а) 11011.01101001; д) 1000.10011011;
б) 1001.10111111; е) 10111.00100101;
в) 10011.0000001; ж) 101010.10110001;
г) 110101.111000101; з) 111011.11011101.
9. Перевести следующие числа из двоично-десятичной системы счисления в десятичную:
а) 1001.01100101; г) 00100001.100000011000;
б) 00111000.01110111; д) 01111000.01100101;
в) 00010111.00110011; е) 00010001.01110100.
10. Перевести следующие числа из восьмеричной системы счисления в двоичную:
а) 36.2571; в) 43.6574; д) 35.2706; ж) 46.7532;
б) 101.025; г) 17.2603; е) 67.3412; з) 734.6521.
11. Перевести следующие числа из десятичной системы счисления в двоично-десятичную:
а) 25.26; в) 65.429; д) 3.4008;
б) 105.23; г) 53.481; е) 34.2759.
12. Перевести следующие числа из десятичной системы счисления в двоичную (дробную часть числа получить с четырнадцатью знаками):
а) 18.36; в) 1020.307; д) 7.2649;
б) 65.855; г) 3.4567; е) 477.9898.
13. Перевести следующие числа из десятичной системы счисления в восьмеричную (дробную часть числа получить с четырьмя знаками):
а) 32.48; в) 2020.832; д) 505.909;
б) 91.505; г) 29.397; е) 937.739.
4. Формы представления чисел в ЭВМ
В цифровых вычислительных машинах применяются две формы представления чисел:
-
с фиксированной запятой (точкой);
-
с плавающей запятой (точкой).
В зависимости от того, какой из этих двух способов принят для представления чисел, различают два режима работы цифровых вычислительных машин: с фиксированной запятой и с плавающей точкой. Рассмотрим подробнее сущность представления чисел в обеих формах.
4.1 Представление чисел в форме с фиксированной точкой
При работе вычислительной машины в режиме с фиксированной запятой место запятой, отделяющей целую часть числа от дробной, остается постоянным для всех чисел, с которыми работает цифровая машина. При конструировании машин, работающих в режиме с фиксированной запятой, заранее устанавливают, какое количество разрядов отводится для целой части числа, а какое – дробной части.
Поясним сказанное примером. Допустим, что цифровая машина рассчитана на представление шестиразрядного десятичного числа, причем три разряда отводятся на целую часть числа, а три – на дробную, или, как принято говорить, запятая фиксирует после третьего цифрового разряда. В этом случае в машине могут быть представлены следующие числа:
+999.999,
+999.998,
. . . . . . .
+000.001,
000.000,
-000.001,
. . . . . . .
………-999.999.
Отметим сразу некоторые недостатки, присущие способу представления чисел с фиксированной запятой. В машине, работающей в режиме с фиксированной запятой, диапазон представляемых чисел, отличных от нуля, сравнительно невелик (в нашем примере – от 0.001 до 999.999). Всякое число, меньше по абсолютной величине минимального положительного числа, представляемого машиной, будет записано в машине в виде нуля. Это так называемый машинный нуль. Кроме того, любое число, получающееся в результате вычислений, не должно превышать по абсолютной величине максимального числа, которое может быть представлено машиной (применительно к нашему примеру результат не должен превышать 999.999): в противном случае старшие разряды числа будут потеряны, а результат вычисления – искажен. Такое явление называется переполнением разрядной сетки.
Из-за перечисленных недостатков режим с фиксированной запятой оказывается неудобным для решения задач, включающих в себя разнообразные и обширные вычисления, проводимые над числами из достаточно широкого диапазона. При работе в режиме с фиксированной запятой необходимо заранее (еще при подготовке задачи к решению на машине) учитывать возможность переполнения разрядной сетки. Чтобы не допустить переполнения, входящие в задачу исходные данные приходится умножать на соответствующие масштабные коэффициенты (масштабировать). Масштабные множители подбираются таким образом, чтобы все участвующие в арифметических операциях величины после масштабирования оказались в допустимых для данной машины пределах. При этом следует еще предусмотреть, чтобы результаты вычислений также оказались в допустимых пределах.
Кроме того, масштабные множители должны по возможности приближать числа, реально участвующие в вычислениях, к верхнему допустимому пределу. Это требование объясняется тем, что при работе машины в режиме с фиксированной запятой малые по абсолютной величине числа могут быть представлены со значительно меньшим количеством значащих цифр, - то есть с меньшей относительной точностью,- чем числа, близкие к верхней границе. Поэтому масштабные коэффициенты для различных величин, участвующих в вычислениях, могут оказаться различными. Более того, эти коэффициенты, возможно, потребуется менять в ходе вычислений.
Введение масштабных множителей, как правило, сильно усложняет расчетные формулы, входящие в алгоритм решения задачи. Подбор этих множителей является делом очень сложным и в большей степени зависит от опытности математика, подготавливающего задачу для решения на машине. Поэтому режим работы с фиксированной запятой обычно применяется только в малых и специализированных ЭВМ; такие машины являются менее сложными и, следовательно, более дешевыми, чем машины, которые могут работать в режиме с плавающей запятой.
Ячейка памяти машины, содержащая число с фиксированной запятой, имеет знаковый разряд и цифровые разряды. Разряды ячейки нумеруются слева направо, начиная с нуля. Знак числа указывается в нулевом (знаковом) разряде ячейки следующим образом: плюс изображается нулем, а минус – единицей. Двоичная запись числа помещается в цифровые разряды ячейки (с первого по
(n-1)-ый в n-рязрядной ячейке), причем каждый разряд числа записывается в строго определенном месте в зависимости от его удаления от запятой. Чаще всего запятая фиксируется перед первым (старшим) цифровым разрядом. Тогда, например, двоичное число +0.101100111000101 в шестнадцатиразрядной ячейке ЭВМ запишется следующим образом:
знаковый разряд цифровые разряды