Перевод чисел из одной позиционной системы счисления в другую

Информатика 10 класс Босова § 11. Перевод чисел из одной позиционной системы счисления

Информатика. 10 класса. Босова Л.Л. Оглавление

§11. Перевод чисел из одной позиционной системы счисления в другую


11.1. Перевод целого десятичного числа в систему счисления с основанием q

Для перевода целого десятичного числа в систему счисления с основанием q следует:

1) последовательно выполнять деление данного числа и получаемых целых частных на основание новой системы счисления до тех пор, пока не получится частное, равное нулю;
2) полученные остатки, являющиеся цифрами числа в новой системе счисления, привести в соответствие алфавиту новой системы счисления;
3) составить число в новой системе счисления, записывая его, начиная с последнего остатка.

Рассмотрим примеры перевода целых десятичных чисел в 2-ичную, 8-ричную и 16-ричную системы счисления.

Пример 1.

Перевод чисел из одной позиционной системы счисления в другую

Пример 2.

Перевод чисел из одной позиционной системы счисления в другую

Пример 3.

Перевод чисел из одной позиционной системы счисления в другую

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

Поскольку запись числа в системе счисления с основанием q заканчивается на 4, остаток от деления числа 22 на q равен 4: 22 mod q = 41). Следовательно, 18 mod q = 0. Это верно для q ? {18, 9, 6, 3, 2, 1}.

1) Операция mod — вычисление остатка от целочисленного деления.

Так как в новой системе счисления запись числа оканчивается на 4, то q > 4. Следовательно, условию задачи удовлетворяют основания: 18, 9 и 6.

11.2. Перевод целого десятичного числа в двоичную систему счисления

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

Например: 109610 = 1024 + 72 = 1024 + 64 + 8 = 100010010002.

Здесь мы представили число в виде суммы степеней двойки: сначала взяли максимально возможное значение, не превышающее исходное число (1024 < 1096), и нашли разность между исходным числом и этим значением (72). Затем выписали степень двойки, не превышающую эту разность, и т. д. Когда исходное число было представлено в виде суммы, мы построили его двоичное представление, записав 1 в разрядах, соответствующих слагаемым, вошедшим в сумму, и 0 — во всех остальных разрядах.

11.3. Перевод целого числа из системы счисления с основанием р в систему счисления с основанием q

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

Для того чтобы перевести целое число из системы счисления с основанием р в систему счисления с основанием q, достаточно:

1) основание новой системы счисления выразить в исходной системе счисления и все последующие действия производить в исходной системе счисления;
2) последовательно выполнять деление данного числа и получаемых целых частных на основание новой системы счисления до тех пор, пока не получится частное, равное нулю;
3) полученные остатки, являющиеся цифрами числа в новой системе счисления, привести в соответствие алфавиту новой системы счисления;
4) составить число в новой системе счисления, записывая его, начиная с последнего остатка.

При необходимости перевести целое число из системы счисления с основанием р в систему счисления с основанием q можно попытаться воспользоваться описанным выше алгоритмом. Другой способ состоит в том, чтобы свести всё к хорошо знакомым действиям в десятичной системе счисления: перевести исходное число в десятичную систему счисления, после чего полученное десятичное число представить в требуемой системе счисления (рис. 3.3).

Перевод чисел из одной позиционной системы счисления в другую

Рис. 3.3. Схема перевода целого числа из системы счисления с основанием р
в систему счисления с основанием q через десятичную систему счисления

Пример 5.

12345 = 1 • 53 + 2 • 52 + 3 • 51 + 4 • 50 = 19410 = 5226.

11.4. Перевод конечной десятичной дроби в систему счисления с основанием q

Для перевода конечной десятичной дроби в систему счисления с основанием q следует:

1) последовательно умножать данное число и получаемые дробные части произведения на основание новой системы счисления до тех пор, пока дробная часть произведения не станет равна нулю или не будет достигнута требуемая точность представления числа;
2) полученные целые части произведений, являющиеся цифрами числа в новой системе счисления, привести в соответствие алфавиту новой системы счисления;
3) составить дробную часть числа в новой системе счисления, начиная с целой части первого произведения.

Пример 6. Переведём число 0,187510 в двоичную систему счисления.

Выполним умножение числа 0,187510 на 2:

Перевод чисел из одной позиционной системы счисления в другую

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

0,187510 = 0,00112.

11.5. «Быстрый» перевод чисел в компьютерных системах счисления

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

Между основаниями этих систем существует очевидная связь: 16 = 24, 8 = 23.

Способ «быстрого» перевода основан на том, что каждой цифре числа в системе счисления, основание которой q кратно степени двойки, соответствует число, состоящее из n (q = 2n) цифр в двоичной системе счисления. Замена восьмеричных цифр двоичными тройками (триадами) и шестнадцатеричных цифр двоичными четвёрками (тетрадами) позволяет осуществлять быстрый перевод между этими системами счисления, не прибегая к арифметическим операциям.

Перевод чисел из одной позиционной системы счисления в другую

Для того чтобы целое двоичное число записать в системе счисления с основанием q = 2n, достаточно:

1) данное двоичное число разбить справа налево на группы по n цифр в каждой;
2) если в последней левой группе окажется меньше n разрядов, то её надо дополнить слева нулями до нужного числа разрядов;
3) рассмотреть каждую группу как n-разрядное двоичное число и записать её соответствующей цифрой системы счисления с основанием q = 2n.

Пример 7. Переведём число 110101001112 в восьмеричную систему счисления.
110101001112 — исходное число;

?11.010.100.111 — выделяем триады;

?011.010.100.111 — дополняем левую группу слева нулём;

?3.2.4.7 — выписываем восьмеричные цифры;

?32478 — результат.

Пример 8. Переведём число 16АС16 в двоичную систему счисления.
16АС16 — исходное число;

?0001.0110.1010.1100 — заменяем каждую цифру тетрадой;

?1.0110.1010.1100 — убираем слева незначащие нули;

?10110101011002 — результат.

Через двоичную систему счисления можно проводить быстрые переводы из восьмеричной системы счисления в шестнадцатеричную и обратно (рис. 3.4)

Перевод чисел из одной позиционной системы счисления в другую

Рис. 3.4. Схема перевода целых чисел из восьмеричной системы счисления в шестнадцатеричную
и обратно через двоичную систему счисления

Пример 9. Выполним перевод восьмеричного 67 2528 числа в шестнадцатеричную систему счисления.
672528 — исходное число;

?110.111.010.101.010 — заменяем каждую цифру триадой;

?110.1110.1010.1010 — разбиваем двоичную строку справа налево на тетрады;

?0110.1110.1010.1010 — дополняем левую группу слева нулём;

?6.Е.А.А — выписываем шестнадцатеричные цифры;

?6ЕАА16 — результат.

Аналогичные алгоритмы быстрого перевода существуют и для дробных чисел. Для того чтобы записать правильную двоичную дробь в системе счисления с основанием q = 2n, достаточно:

1) двоичное число разбить слева направо на группы по n цифр в каждой;
2) если в последней правой группе окажется меньше n разрядов, то её надо дополнить справа нулями до нужного числа разрядов;
3) рассмотреть каждую группу как n-разрядное двоичное число и записать её соответствующей цифрой системы счисления с основанием q = 2n.

Пример 10. Число 0,1011000112 заменим равным ему шестнадцатеричным числом.
0,1011000112 — исходное число;

?0,1011.0001.1 — разбиваем двоичную строку слева направо на тетрады;

?0,1011.0001.1000 — дополняем правую группу справа нулями;

?0,В.1.8 — выписываем шестнадцатеричные цифры;

?0,В1816 — результат.

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

Пример 11. Выясним, сколько значащих нулей в двоичной записи восьмеричного числа 16018.

Для ответа на этот вопрос достаточно знать двоичные триады, соответствующие восьмеричным цифрам от 0 до 7 и выполнить «быстрый» перевод числа 16018 в двоичную систему счисления:

16018 = 001 110 000 0012 = 11100000012.

В двоичной записи 6 значащих нулей, а первые два нуля являются незначащими и не учитываются.

Пример 12. Среди четырёхзначных шестнадцатеричных чисел, двоичная запись которых содержит ровно 7 единиц, найдём:

1) наименьшее число;
2) наибольшее число.

Наименьшее четырёхзначное шестнадцатеричное число — это 100016 = 0001 0000 0000 00002, и его двоичное представление содержит всего одну единицу. Чтобы получить наименьшее число, удовлетворяющее условию задачи, оставшиеся шесть единиц следует разместить в самых младших разрядах. Получим 1 0000 ОО11 11112 = 103F16. Чтобы получить наибольшее число, удовлетворяющее условию задачи, оставшиеся шесть единиц следует разместить в самых старших разрядах. Получим 1111 1110 0000 00002 = FE0016.

А сколько всего таких четырёхзначных шестнадцатеричных чисел, двоичная запись которых содержит ровно 7 единиц?


САМОЕ ГЛАВНОЕ

Для перевода целого десятичного числа в систему счисления с основанием q следует:

1) последовательно выполнять деление данного числа и получаемых целых частных на основание новой системы счисления до тех пор, пока не получится частное, равное нулю;
2) полученные остатки, являющиеся цифрами числа в новой системе счисления, привести в соответствие алфавиту новой системы счисления;
3) составить число в новой системе счисления, записывая его, начиная с последнего остатка.

В компьютерных науках широко используются двоичная, восьмеричная и шестнадцатеричная системы счисления, благодаря чему их называют «компьютерными». Между основаниями этих систем существует очевидная связь: 16 = 24, 8 = 23.

Если основание системы счисления q кратно степени двойки (q = 2n), то любое число в этой системе счисления можно «быстро» перевести в двоичную систему счисления, выписав последовательно двоичные коды каждой из цифр, образующих исходное число. Замена восьмеричных цифр двоичными тройками (триадами) и шестнадцатеричных цифр двоичными четвёрками (тетрадами) позволяет осуществлять быстрый перевод между этими системами счисления, не прибегая к арифметическим операциям.


Вопросы и задания

1. Переведите целые числа из десятичной системы счисления в двоичную систему счисления: 1) 1025; 2) 512; 3) 600.

2. Переведите целое число 1147 из десятичной системы счисления в системы счисления: 1) пятеричную; 2) восьмеричную; 3) шестнадцатеричную.

3. Переведите двоичные числа в восьмеричную систему счисления: 1) 1010001001011; 2) 1010,00100101.

4. Переведите двоичные числа в шестнадцатеричную систему счисления: 1) 1010001001011; 2) 1010,00100101.

5. Переведите числа в двоичную систему счисления: 1) 2668; 2) 26616.

6. Переведите числа из восьмеричной системы счисления в шестнадцатеричную: 1) 12754; 2) 1515.

7. Переведите числа из шестнадцатеричной системы счисления в восьмеричную: 1) 1АЕ2; 2) 1С1С.

8. Сравните числа: 1) 12516 и 1111000101012; 2) 7578 и 11100101012; 3) А2316 и 12328.

9. Сколько из чисел С, записанных в двоичной системе счисления, удовлетворяет неравенству 2218<С<9516? Какие числа? 1) 100101002; 2) 100101102; 3) 100100112; 4) 100011002.

10. Сколько значащих нулей в двоичной записи: 1) восьмеричного числа 2501; 2) шестнадцатеричного числа 12А?

11. Среди четырёхзначных восьмеричных чисел, двоичная запись которых содержит ровно 5 единиц, найдите: 1) наименьшее число; 2) наибольшее число.

12. Среди трёхзначных шестнадцатеричных чисел, двоичная запись которых содержит ровно 7 нулей, найдите: 1) наименьшее число; 2) наибольшее число.

13. Все 5-буквенные слова, составленные из букв О, П, Р, Т, записаны в алфавитном порядке и пронумерованы. Вот начало списка: 1. ООООО 2. ООООП 3. ООООР 4. ООООТ 5. ОООПО
Какие слова находятся в этом списке на 531-м и 787-м местах?

14. Укажите через запятую в порядке возрастания все основания систем счисления, в которых запись десятичного числа 82 оканчивается на 5.


§ 10. Представление чисел в позиционных системах счисления
§ 11. Перевод чисел из одной позиционной системы счисления в другую
§ 12. Арифметические операции в позиционных системах счисления