Рассмотрим теперь случай перевода в неудобную СС, когда все необходимые действия должны проводиться в старой десятичной системе счисления.
Следовательно, вычисления сводятся к последовательному целочисленному делению заданного числа на основание новой системы счисления.
Алгоритм перевода можно записать в виде следующей последовательности шагов:
1. Разделить в целых числах заданное число А на основание р в той системе, из которой переводят, и запомнить частное q и остаток а.
2. Если частное не равно нулю, то принять его за новое число и вернуться к шагу 1.
3. Если частное равно нулю, действия прекратить. Выписать остатки в порядке, обратном их получению, и принять их за цифры искомого числа. Арифметические действия по данному алгоритму производят в той системе счисления, из которой число переводят.
Ø Перевод в двоичную систему счисления
Вычисления удобно проводить в форме, которая ясна из следующих примеров.
Примеры:
1. Перевести число 25(10) в двоичную систему счисления:
25 |_ 2 Выполняем последовательное деление 25 на 2
- 24 12 |_ 2_
1 - 12 6 |_ 2
0 - 6 3 | _2_ Итак, 25 {10) = 11001 (2).
0 - 2 1
Можно также использовать следующую упрощенную форму записи вычислений: деля последовательно на основание системы р заданное число А, в левом столбце записывается частное от деления, а в правом - соответствующий остаток.
2. Перевести число 32(10) и 7110 в двоичную СС.
32 | 2 0 71| 2 1
16 | 2 0 35| 2 1
8 | 2 0 7| 2 1
4 | 2 0 8| 2 0
2 | 2 0 4| 2 0
1 1 32 (10) =100000(2) 2| 2 0 71(10) = 1000111(2)
1 1
Ø Перевод в шестнадцатеричную систему счисления
Рассмотрим примеры перевода чисел из десятичной СС в шестнадцатеричную с помощью алгоритма перевода, а полученного результата - снова в десятичную СС с помощью алгоритма замещения.
Примеры.
1. Перевести число 191(10) в шестнадцатеричную систему счисления и наоборот:
а) 191 | 16 Заменяем 11(10) на В(16), а 15(10) на F(l6). Итак, 191(10) = ВF(16).
-16 _ 11
-16
6) BF(16) = (В • 161 + F • 16°) = (11 • 16 + 15 • 1) = (176 + 15) = 191(10).
2. Перевести число 1723(10) в шестнадцатеричную систему счисления и наоборот:
а) _1723 | 16
16 _107 | 16
123 96 6
112 11
11 Итак, 1723(10) = 6ВВ(16)
б) 6ВВ(16) = (6•162 + В•161 + В•16°) = (1536 + 176 + 11) = 1723(10).
Ø Перевод в восьмеричную систему счисления
Пример
1. Перевести число 1723(10) в восьмеричную систему счисления и наоборот:
а) _1723 | 8
16 215 | 8
12 - 16 26 | 8_
8 55 - 24 3
43 - 48 2
- 40 7 Итак, 1723(10) = 3273(8);
б) 3273(8) = (3•83 + 2•82 + 7•81 + 3•80) = (1536 + 128 + 56 + 3) = 1723(10).
Перевод шестнадцатеричных чисел в десятичную СС.
При переводе шестнадцатеричных чисел в десятичную СС можно воспользоваться таблицей чисел вида а • 16k, помещенных в табл. 2.8.
Таблица 2.8-Перевод шестнадцатеричных чисел в десятичную СС | |||||
а(16) | а •164 | а • 163 | а• 162 | а • 161 | а(10) |
А | |||||
В | |||||
С | |||||
D | |||||
Е | |||||
F |