Жмакин А.П. Архитектура ЭВМ (2006), страница 7
Описание файла
Документ из архива "Жмакин А.П. Архитектура ЭВМ (2006)", который расположен в категории "". Всё это находится в предмете "техника и элементная база средств цифровой обработки сигналов (тэбс цос)" из 11 семестр (3 семестр магистратуры), которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. .
Онлайн просмотр документа "Жмакин А.П. Архитектура ЭВМ (2006)"
Текст 7 страницы из документа "Жмакин А.П. Архитектура ЭВМ (2006)"
По этой причине переход, например, Z3 Zg проще осуществить через промежуточное преобразование к десятичной системе Z3 -> Z10 -> Z8. Ситуация, однако, значительно упрощается, если основания исходной и конечной систем счисления оказываются связанными соотношением p = qr, где г — целое число (естественно, большее 1) или г = \/п (и > 1, целое) — эти случаи будут рассмотрены далее.
3.2.2. Перевод дробных чисел
из одной системы счисления в другую
Вещественное число, в общем случае содержащее целую и дробную часть, всегда можно представить в виде суммы целого числа и правильной дроби. Поскольку в предыдущем разделе проблема записи натуральных чисел в различных системах счисления уже была решена, можно ограничить рассмотрение только алгоритмами перевода правильных дробей.
Введем следующие обозначения: правильную дробь в исходной системе счисления р будем записывать в виде 0,Yp, дробь в системе q — 0,Yq, а
преобразование — в виде 0, Yp -> 0, Yq .
Последовательность рассуждений весьма напоминает проведенную ранее для натуральных чисел. В частности, это касается рекомендации осуществлять преобразование через промежуточный переход к десятичной системе, чтобы избежать необходимости производить вычисления в "непривычных" системах счисления, т. е. 0,Yp -> 0,710 -> 0,Yq.
Это, в свою очередь, разбивает задачу на две составляющие: преобразование 0,Yp -> 0,У10 и 0,У10 -» 0,Yq , каждое из которых может рассматриваться независимо.
Алгоритмы перевода 0,К10 -> 0,Yq выводятся путем следующих рассуждений. Если основание системы счисления q , простая дробь содержит п цифр, и Ьк — цифры дроби {\<bk <п, 0<Ьк <п-\), то она может быть представлена в виде суммы:
Часть дроби от разряда / до ее конца обозначим е, и примем е„ =bn/q. Очевидно, Е] = 0,Yq, тогда в (3.5) легко усматривается рекуррентное соотношение:
Если вновь позаимствовать в PASCAL обозначение функции — на этот раз trunc, производящей округление целого вещественного числа путем отбрасывания его дробной части, то следствием (3.6) будут соотношения, позволяющие находить цифры новой дроби:
Соотношения (3.7) задают алгоритм преобразования: 0,У|0 -» 0,Yq :
1. Умножить исходную дробь в десятичной системе счисления на q, выделить целую часть — она будет первой (старшей) цифрой новой дроби; отбросить целую часть.
2. Для оставшейся дробной части операцию умножения с выделением целой и дробных частей повторять, пока в дробной части не окажется 0 или не будет достигнута желаемая точность конечного числа; появляющиеся при этом целые будут цифрами новой дроби.
3. Записать дробь в виде последовательности цифр после нуля с разделителем в порядке их появления в пп. 1 и 2.
| Пример 3.3
Выполнить преобразование 0,37510 -> 0,Y2. Результат — на рис. 3.2. Таким образом, 0,37510 ->0,0112.
Рис. 3.2. Результат выполнения примера 3.3
Перевод 0,Yp ->0,У10, как и в случае натуральных чисел, сводится к вычислению значения формы (3.5) в десятичной системе счисления. Например:
0,0112 = 0 ■ 2"1 +1 • 2~2 +1 • 2"3 = 0 + 0,25 + 0,125 = 0,375,0.
Следует сознавать, что после перевода дроби, которая была конечной в исходной системе счисления, она может оказаться бесконечной в новой системе. Соответственно, рациональное число в исходной системе может после перехода превратиться в иррациональное. Справедливо и обратное утверждение: число иррациональное в исходной системе счисления в иной системе может оказаться рациональным.
! Пример 3.4
Выполнить преобразование 5,3(3)10 -> У8.
Перевод целой части, очевидно, дает: 510 =123 . Перевод дробной части: 0,3(3)i0 -> 0,1. Окончательно: 5,3(3)ю —> 12,13.
Как уже было сказано, значение целого числа не зависит от формы его представления и выражает количество входящих в него единиц. Простая дробь имеет смысл доли единицы, и это "дольное" содержание также не зависит от выбора способа представления. Другими словами, треть пирога остается третью в любой системе счисления.
3.2.3. Перевод чисел
между системами счисления 2 <-> 8 <-> 16
Интерес к двоичной системе счисления вызван тем, что именно она используется для представления чисел в компьютере. Однако двоичная запись оказывается громоздкой, поскольку содержит много цифр и, кроме того, плохо воспринимается и запоминается человеком из-за зрительной однородности (все число состоит из нулей и единиц). Поэтому в нумерации ячеек памяти компьютера, записи кодов команд, нумерации регистров и устройств и пр. используются системы счисления с основаниями 8 и 16. Выбор именно этих систем счисления обусловлен тем, что переход от них к двоичной системе и обратно осуществляется, как будет показано далее, весьма простым образом.
Двоичная система счисления имеет основанием 2 и, соответственно, две цифры: 0 и 1.
Восьмеричная система счисления имеет основание 8 и цифры 0, 1,7.
Шестнадцатеричная система счисления имеет основание 16 и цифры О, 1,..., 9, А, В, С. D, Е, F. При этом знак А является шестнадцатеричной цифрой, соответствующей числу 10 в десятичной системе, В16=11,0,
С16=12]0, DI6=1310, Е16 = 1410 и. F16 =1510. Другими словами, в данном случае А,F — это не буквы латинского алфавита, а цифры шестнадцатеричной системы счисления.
Докажем две теоремы [12].
Теорема 1. Для преобразования целого числа Zp -> Zq в том случае, если
системы счисления связаны соотношением q-pr, где г — целое число, большее 1, достаточно Zp разбить справа налево на группы по г цифр и каждую из них независимо перевести в систему q .
Доказательство. Пусть максимальный показатель степени в записи числа р по форме (3.1) равен k -1, причем, 2r>к-1>r.
Таким образом, г -разрядные числа системы с основанием р оказываются записанными как цифры системы с основанием q. Этот результат можно обобщить на ситуацию произвольного к-\>г — в этом случае выделятся не две, а больше (w) цифр числа с основанием q. Очевидно,
Zq = {bm ...b0)q.
Теорема 2. Для преобразования целого числа Zp -> Zq в том случае,
если системы счисления связаны соотношением p = qr, где г — целое число, большее 1, достаточно каждую цифру Zp заменить соответст-нующим v -разрядным числом в системе счисления q, дополняя его при необходимости незначащими нулями слева до группы в г цифр. Доказательство. Пусть исходное число содержит две цифры, т. е.
Для каждой цифры справедливо: 0<а, <р-1 и поскольку p = qr,
0<at<qr -1, то в представлении этих цифр в системе счисления q максимальная степень многочленов (3.1) будет не более r-1 и эти многочлены будут содержать по r цифр:
причем число Z? содержит 2r цифр. Доказательство легко обобщается на случай произвольного количества цифр в числе Z„.
3.2.4. Понятие экономичности системы счисления
Число в системе счисления с к разрядами, очевидно, будет иметь наибольшее значение в том случае, если все цифры числа окажутся максимальными, т. е. равными р-1. Тогда
Количество разрядов числа при переходе от одной системы счисления к другой в общем случае меняется.
Очевидно, если р = q (а — не обязательно целое), то
т. е. количество разрядов числа в системах счисления р и q будут различаться в а раз, причем
При этом основание логарифма никакого значения не имеет, поскольку а определяется отношением логарифмов. Сравним количество цифр в числе 9910 и его представлении в двоичной системе счисления: 9910 = 11000112, т. е. двоичная запись требует 7 цифр вместо 2 в десятичной, a = Iogl0/log2 = 3,322; следовательно, количество цифр в десятичном представлении нужно умножить на 3,322 и округлить в большую сторону: 2-3,322 = 6,644 * 7.
Введем понятие экономичности представления числа в данной системе счисления [12].
Определение__
Под экономичностью системы счисления будем понимать то количество чисел, которое можно записать в данной системе с помощью определенного количества цифр.
Речь в данном случае идет не о количестве разрядов, а об общем количестве сочетаний цифр, которые интерпретируются как различные числа. Поясним на примере: пусть в распоряжении имеется 12 цифр. Можно разбить их на 6 групп по 2 цифры ("0" и "1") и получить шестиразрядное двоичное число; общее количество таких чисел, как уже неоднократно обсуждалось, равно 26. Можно разбить заданное количество цифр на 4 группы по три цифры и воспользоваться троичной системой счисления — в этом случае общее количество различных их сочетаний составит З4. Аналогично можно произвести другие разбиения; при этом число групп определит разрядность числа, а количество цифр в группе — основание системы счисления. Результаты различных разбиений можно проиллюстрировать табл. 3.2.
Из приведенных оценок видно, что наиболее экономичной оказывается троичная система счисления, причем результат будет тем же, если исследовать случаи с другим исходным количеством сочетаний цифр.