- •ПОзиционные системы счисления
- •Цель работы
- •Позиционные системы счисления основные понятия
- •Различные типы позиционных систем счисления двоичная система счисления
- •Шестнадцатеричная система счисления
- •Представление чисел в различных системах счисления
- •Соответствие между представлением натуральных чисел в различных псс
- •Выполнение арифметических операций в двоичной системе счисления
- •Сложение
- •Вычитание
- •Умножение
- •Деление
- •Перевод чисел из одной системы счисления в другую
- •Преобразование представления числа из некоторой системы счисления в десятичную
- •Преобразование представления числа из десятичной системы счисления в другую
- •Пробразование целых чисел
- •Преобразование дробных чисел
- •Примерное соответствие между количествами цифр после точки в разных псс
- •Примеры преобразования представления произвольного числа
- •Преобразование между двоичной и шестнадцатеричной системами счисления
- •Вопросы для самоконтроля
- •Упражнения
- •Рекомендуемая литература
- •Содержание
- •ПОзиционные системы счисления
- •654007, Г. Новокузнецк, ул. Кирова,42 Издательский центр СибГиу
Преобразование дробных чисел
Пусть необходимо перевести в Q-ую ПСС конечную десятичную дробь х (0< x <1). Так как х < 1, то число x в Q-ой ПСС можно представить в виде:
, (14)
где (i=1,2,…) – искомые коэффициенты Q-ого разложения числа х. Умножим обе части (14) на Q, причём в левой части равенства умножение выполним в 10-ой ПСС. Тогда:
. (15)
Учитывая, что и выделяя целую и дробную часть выражения (15), получим:
Здесь также скобками показано взятие целой частит числа, а символом D(∙) – мы обозначили операцию взятия дробной части числа. Ясно, что также будет правильной дробью, к которой можно применить аналогичную операцию. Таким образом, процесс вычисления величинможно записать в виде рекуррентных формул (полагая):
(16)
Теперь можно сформулировать правило. Для вычисления представления конечной десятичной дроби в новой ПСС необходимо:
Выполнить умножение текущего результата хi (16) на основание новой ПСС (все числа представляются в 10-ой ПСС и операция выполняется по правилам 10-ой ПСС).
Вычислить целую q-(i +1) и дробную части хi +1 текущего результата по формулам (16).
Если новая дробная часть хi +1 равна 0 или получено достаточное количество цифр изображения числа, то перейти к пункту 4, иначе – к пункту 1.
Каждое целое q-(i +1) записываем одной цифрой в новой ПСС.
Полученные целые записываем в прямом порядке после точки (отделяющей дробную часть от целой), они дадут изображение дробного числа х в новой ПСС.
К сожалению, большинство конечных дробей в десятичной ПСС в двоичной ПСС будут бесконечными. Поэтому, необходим критерий для остановки процесса вычислений, задаваемого формулами (16). Таким критерием является достижение требуемой точности изображения числа. Её будем определять исходя из эмпирических соображений, приведённые в нижележащей таблице.
Примерное соответствие между количествами цифр после точки в разных псс
-
Количество цифр в 10-ой ПСС
Количество цифр в другой ПСС
16
2
1
1
3
2
1
7
3
2
10
4
3
14
5
3
17
В среднем на одну десятичную цифру приходится 3.4 цифры в двоичной ПСС и 0.6 цифр в шестнадцатеричной ПСС.
Надо помнить, что при остановке вычислений по формулам (16) вычислять необходимо на один разряд больше, чем требуется, чтобы правильно выполнить округление в последнем разряде.
Двоичное округление: если отбрасываемый разряд равен 1, то к последнему оставляемому разряду добавляем единицу.
Пример 1. Перевести число х = 0.210 в двоичную ПСС. Для начала оценим количества двоичных разрядов, которые необходимо оставить после точки. Согласно таблице необходимо получить 3 двоичные цифры после точки. С целью правильного округления необходимо будет вычислить на один разряд больше, то есть четыре двоичных разряда. Теперь, применяя последовательно формулы (16), получим:
0. | 2
0 | 4 ( 0.2 ∙ 2 = 0 + 0.4 => q-1 = 0 )
0 | 8 ( 0.4 ∙ 2 = 0 + 0.8 => q- 2 = 0 )
1 | 6 ( 0.8 ∙ 2 = 1 + 0.6 => q-3 = 1 )
1 | 2 ( 0.6 ∙ 2 = 1 + 0.2 => q-3 = 1 ) и здесь можно остановиться.
В этой записи горизонтальной чертой мы отделили исходную дробь от процесса преобразования; вертикальной чертой отделены целая и дробная часть результата умножения только дробной части на новое основание – 2; в скобках показан процесс умножения. Таким образом, представлением точного числа 0.210 в двоичной ПСС является двоичная дробь (с учётом округления третьего двоичного разряда):
0.210 ≈ 0.012 .
Пример 2. Получить для десятичного числа 0.5410 его двоичное представление. Сразу оценим количество двоичных разрядов, чтобы получить требуемую точность изображения числа в двоичной ПСС. Согласно таблице необходимо получить 7 двоичных цифр после точки. С целью правильного округления необходимо будет вычислить на один разряд больше, то есть 8 двоичных разрядов.
Действуя по формулам (16), получим:
0.|54
1 | 08 ( 0.54∙2 = 1 + 0.08 => q-1 = 1 )
0 | 16 ( 0.08∙2 = 0 + 0.16 => q-2 = 0 )
0 | 32 ( 0.16∙2 = 0 + 0.32 => q-3 = 0 )
0 | 64 ( 0.32∙2 = 0 + 0.32 => q-4 = 0 )
1 | 28 ( 0.64∙2 = 1 + 1.28 => q-5 = 1 )
0 | 56 ( 0.28∙2 = 0 + 0.56 => q-6 = 0 )
1 | 12 ( 0.56∙2 = 1 + 0.12 => q-7 = 1 )
0 | 24 ( 0.12∙2 = 0 + 0.24 => q-8 = 0 ) и здесь можно остановиться.
В итоге, с точностью до 7 знаков, имеем: 0.5410 ≈ 0.10001012 .