- •Системы счисления
- •Перевод целого десятичного числа в произвольную р-ичную систему счисления
- •Перевод дробного десятичного числа в произвольную р-ичную систему счисления
- •Перевод р-ичного числа в десятичную систему счисления
- •Преобразование между двоичной, восьмеричной и шестнадцатеричной системами счисления
- •Смешанные системы счисления
Перевод дробного десятичного числа в произвольную р-ичную систему счисления
Рассмотрим перевод правильной десятичной дроби (дроби, у которой целая часть равна нулю) 0,y10 в р-ичную систему счисления. В общем случае такой перевод абсолютно точно выполнить не удастся. Почему? Следовательно, перевод числа в p-ичную систему счисления можно выполнить только с определенной точностью . Число знаков k после запятой, которые необходимо определить для p-ичного представления дробной части, определяется из соотношения
.
Отсюда получаем, что
,
, т.е. . (2)
Для преобразования правильной десятичной дроби числа 0,y10 из десятичной системы счисления в р-ичную используется следующий алгоритм:
начало;
задать число 0,y10 и точность ;
вычислить по формуле (2) число k р-ичных разрядов, требуемых для записи дробной части;
умножить число 0,y10 на р и записать целую часть m и дробную n часть произведения.
записать m в старший разряд дробной части р-ичного числа;
заменить число 0,y10 на n.
Действия 4 – 6 повторить еще k–1 раз.
конец.
Пример 2. Перевести число 0,8110 в двоичную, восьмеричную и шестнадцатеричную системы счисления с точностью 0,006.
Этап |
Перевод в двоичную систему |
Перевод в восьмеричную систему |
Перевод в шестнадцатеричную систему |
||||||
x10 |
m |
n |
x10 |
m |
n |
x10 |
m |
n |
|
0 |
|
|
|
||||||
1 |
0,81 |
1 |
0,62 |
0,81 |
6 |
0,48 |
0,81 |
12 |
0,96 |
2 |
0,62 |
1 |
0,24 |
0,48 |
3 |
0,84 |
0,96 |
15 |
0,36 |
3 |
0,24 |
0 |
0,48 |
0,84 |
6 |
0,72 |
|
|
|
4 |
0,48 |
0 |
0,96 |
|
|
|
|
|
|
5 |
0,96 |
1 |
0,92 |
|
|
|
|
|
|
6 |
0,92 |
1 |
0,84 |
|
|
|
|
|
|
7 |
0,84 |
1 |
0,68 |
|
|
|
|
|
|
Т.о., 0,8110 = 0,110 01112 = 0,6368 = 0,CF16.
Если число является неправильной десятичной дробью, то есть содержит как целую, так и дробную части, к этим частям по отдельности применяются соответствующие алгоритмы преобразования. Тогда число 7 313,8110 будет представлено в двоичной, восьмеричной и шестнадцатеричной системах счисления с точностью 0,006 следующим образом:
7 313,8110 = 1 110 010 010 001,110 011 12 = 16 221,6368 = 1 C91,CF16.