Статья Автор: Деникина Н.В., Деникин А.В.

1.1 Дробные системы счисления — мантисса, кратная основанию, и нули в хвосте

Когда хвост состоит из нулей

Возьмём 0,A416 = 164/256. Числитель чётный: 164 = 22·41. Тогда 164N = 22N·41N, и в числе сидит большая степень двойки. Основание 16 — это 24, поэтому каждые четыре двойки дают один шестнадцатеричный ноль в конце.

M = 2a·q (q нечётно), p = 2e
нулей в конце записи MN = целая часть (a·N / e)

Для 0,A416: a = 2, e = 4, значит нулей ровно N/2 (с округлением вниз).


В чём здесь ловушка

Если спросить «две последние цифры», честный ответ будет 00 — и он верен, но ничего не проверяет. Поэтому такие задачи спрашивают иначе: сколько нулей в конце, какая последняя ненулевая цифра, сколько значащих цифр. Первым делом здесь нужно разложить мантиссу: вынести из неё все двойки. Пока это не сделано, задача выглядит нерешаемой.

После вынесения остаётся нечётное q, и для него снова работает вся техника предыдущих тетрадей: остатки, порядок, период.


▶ Запустите и сверьте с формулой: при N = 10 должно получиться 5 нулей.



Программа печатает:

1 нулей: 0  последняя ненулевая: 4
2 нулей: 1  последняя ненулевая: 1
3 нулей: 1  последняя ненулевая: 4
10 нулей: 5  последняя ненулевая: 1
101 нулей: 50  последняя ненулевая: 4

Формула целой части объясняет «ступеньку»: при N = 2 и N = 3 нулей поровну, потому что 2·3/4 = 1,5 округляется вниз до того же самого 1.


Сколько нулей стоит в конце шестнадцатеричной записи числа (0,A416)10?


Мантисса числа 0,C016 равна C016 = 192 = 26·3. Сколько нулей будет в конце записи (0,C016)10?


Какая последняя ненулевая цифра у шестнадцатеричной записи числа (0,A416)10?


Верно или неверно?


Итог: перед любыми остатками смотрим на чётность мантиссы. Нечётная — работаем по модулю pm. Чётная — сначала выносим 2a, считаем нули по формуле, и только потом возвращаемся к остаткам для нечётной части.

Загрузка...
Чтобы оставить комментарий, необходимо авторизоваться
💬
Пока нет комментариев. Будьте первым!
Печать