P-Q-ичными (P<Q) системами счисления называют позиционные системы, в которых каждая цифра числа, заданного в Q-ичной системе, заменяется соответствующим её представлением в P-ичной системе. При этом количество разрядов, отводимых под запись любой цифры Q-ичной системы в ее P-ичном представлении, равно числу P-ичных цифр в максимальной цифре Q-ичной системы счисления.

Пример 1. Во многих ЭВМ применялась (и сейчас встречается) двоично-десятичная (2-10-я) система счисления. Т.е. P=2,Q=10.

Запишем число 628,5 в этой системе счисления.

Максимальная цифра в 10-ой системе счисления 9. Она представляется в 2-ой системе счисления как 910=10012 и занимает 4 разряда. Т.е. под представление любой цифры из 10-ой системы счисления надо отводить по 4 разряда. Представим каждую цифру числа 628,5 в 2-ой системе счисления:

610=01102; 210=00102; 810=10002; 510=01012;

Заменим в исходной записи числа каждую десятичную цифру её двоичным эквивалентом. Тогда

628,510= 0110 0010 1000 ,01012-10=11000101000,01012-10

Крайние нули можно не писать.

Если требуется перейти из P-Q-ичной в Q-ичную систему счисления (в этом примере – в десятичную), то процесс обратный: разбиваем число на группы по 4 разряда “от запятой” вправо и влево, дополняя крайние группы нулями справа или слева до 4-х цифр. Каждую группу двоичных чисел заменяем одним десятичным числом.

В общем случае, если требуется перейти из P-Q–ичной системы счисления в десятичную, надо число разбить на группы по k разрядов (k – количество разрядов для представления максимальной Q-ичной цифры) “от запятой” вправо и влево, пронумеровать эти группы так же “от запятой” (это будет соответствовать степеням Q), каждую группу перевести в десятичную систему счисления и домножить на Q в соответствующей степени.

Если Q=Pm, где m- натуральное число, то такие системы счисления называются смешанными.

У чисел, записанных в смешанных системах счисления, есть некоторые замечательные свойства:

1) Если Q=Pm, то вид числа в P–ичной системе счисления совпадет с видом числа, записанным в P-Q –ичной системе счисления.

2) Если Q=Pm, то максимальная цифра Q-ичной системы счисления занимает m разрядов при её записи в P-ичной. И тогда можно сформулировать следующие алгоритмы:

Алгоритм перевода из P-ичной в Q-ичную систему счисления:

-запись числа в p-ичной системе счисления разбить на группы по m цифр, (“от запятой”);

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

Алгоритм перевода из Q-ичной в P-ичную систему счисления:

Каждую цифру в записи в Q-ичного числа отдельно перевести в p-ичную система счисления.

Пример 2. Пусть P=2, Q=8. Продемонстрируем сказанное на числе 125,510.

Его двоичная запись1111101,12. Его восьмеричная запись 175,48.

Переведём 175,48 в 2-8-ичную систему счисления:

максимальная цифра восьмеричной системы счисления равна 7.

78=4+2+1=1112 ( пользуемся компьютерным алгоритмом перевода в двоичную система счисления). Т.е. при записи в 2-8 системе надо выделять по 3 разряда под каждую цифру. Получим:

1=0012; 7=1112; 4=1002; 5=1012.

Теперь запишем число в 2-8 системе:

001111101,100.

Если откинуть крайние нули, то двоично-восьмеричный вид числа совпадает с его двоичным видом. (Т.к. 23=8 => это смешанная система счисления и вид числа в 2-ой системе счисления аналогичен виду в 2-8-ой системе счисления)

 

Пример 3 . Переведём 1010,000110112 в восьмеричную систему счисления.

Т.к 8=23, это смешанные системы счисления, следовательно, запись числа разбиваем на группы по 3 цифры (в примере – пробелами), дополняя нулями крайние группы, и каждую группу заменяем её восьмеричным эквивалентом:

001 010 , 000 110 1102=12,0668

Реально в ЭВМ используются 2-8 и 2-16 системы счисления.

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

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

 

Пример 4 . Требуется сложить два 16-ричных числа 19F16 и13E16. Сделать это можно несколькими способами:

а) перевести числа в десятичную систему счисления, сложить и результат перевести обратно в шестнадцатеричную;

б) сложить числа, не выходя из шестнадцатеричной системы счисления, опираясь на соответствующую таблицу сложения;

в) перевести числа в двоичную систему счисления, там сложить и результат перевести в шестнадцатеричную.

Воспользуемся последним вариантом. Т.к. 16=24, это смешанные системы счисления, и переход из одной системы в другую происходит достаточно легко. Для перевода в двоичную система счисления следует каждую шестнадцатеричную цифру заменить двоичным эквивалентом из 4-х разрядов.

19F16 =0001 1001 11112

13E16 =0001 0011 11102

Теперь складываем двоичные числа (нули слева можно не писать):

  1100111112

+1001111102

10110111012

Для перевода результата в шестнадцатеричную системе счисления разбиваем число на группы по 4 разряда от запятой (запятая неявно присутствует после крайней правой цифры). В примере крайнюю левую группу дополняем нулями слева до 4-х разрядов:

0010 1101 11012

Каждую группу заменяем одной шестнадцатеричной цифрой:

2DD16.

Для проверки можно воспользоваться вариантом а). Времени при этом уйдёт намного больше.

Ещё одно применение смешанных систем счисления – перевод из одной системы счисления в другую, даже если они не являются непосредственно смешанными.

 

Пример 5 . Требуется перевести число BF3,616 из 16-ричной системы счисления в 8-ричную. Можно сначала перевести число в десятичную с.с, а из неё в восьмеричную. Но мы воспользуемся тем, что двоичная система является смешанной и с шестнадцатеричной, и с восьмеричной. Т.е. сначала переведём число из шестнадцатеричной системы счисления в двоичную, а потом в восьмеричную.

Т.к. 16=24, следовательно для записи каждой шестнадцатеричной цифры надо выделять по 4 разряда:

BF3,616=1011 1111 0011, 01102

Теперь переведём число из двоичной в восьмеричную систему счисления Т.к. 8=23, разбиваем запись числа на группы по 3 разряда и каждую группу записываем одним восьмеричным числом:

101 111 110 011 , 011 0002=5763,386.

Вопросы и задачи для самоконтроля

  1. Почему двоичная и двоично-шестнадцатеричная формы записи совпадают, а двоичная и двоично-десятичная нет?
  2. Представить десятичные числа в двоично-десятичной с.с.:
  3. 34590; 27153

  4. Представить двоично-десятичные числа в десятичной с.с.
  5. 1 0001 1001 0001 0001; 1 0000 0001 0000 0111 1001.

  6. Во сколько раз сократится количество цифр в записи числа, если перевести его из четверичной системы в 64-ричную? А из 10-ой в 1000-ричную?
  7. Перевести число BF3,616 в восьмеричную с.с.
  8. Перевести число 15FC16 в двоичную с.с.
  9. Перевести 110111101011101112 и 1011101,101112 в шестнадцатеричную с.с.
  10. Выписать четверичное представление для всех цифр алфавита 16-ричной с.с.и перевести число 12345678,9ABCDEF16 непосредственно в четверичную с.с., не используя двоичное представление в качестве промежуточного.
  11. Перевести числа из шестнадцатеричной в восьмеричную с.с.:
  12. A45; 24A,9F; 0,FDD5; F12,0457.

  13. Сумму восьмеричных чисел 17+1700+ 170000 + …+ 1 700 000 000 перевели в шестнадцатеричную с.с. Найти в записи числа, равного этой сумме, пятую цифру слева.