максим зубов
Мастер
(1251)
11 лет назад
Дробь будет, конечно, периодическая.
Первая цифра, естественно, 0.
Потом умножаете число на 2, смотрите: меньше единицы получилось или не меньше?
Если меньше 1, то следующую цифру записываете 0, если не меньше 1 - то записываете 1, а из числа вычитаете единицу. Потом опять умножаете на 2 и повторяете всё. И так далее. И так до тех пор, пока не придёте к числу, которое уже было в последовательности - тогда можно замкнуть период.
То есть вот:
0,210
0,420
0,840
0,681
0,361
0,720
0,441
0,880
0,761
0,521
0,041
0,080
0,160
0,320
0,640
0,281
0,560
0,121
0,240
0,480
0,960
0,921
0,841
Т. о. в двоичной системе это число выглядит так:
0,00(11010111000010100011)
Leonid
Высший разум
(388973)
11 лет назад
Для этого надопредставить число в виде суммы 1/2, 1/4, 1/8 и т. д. Естессно, некоторые из этих слагаемых будут отсутствовать. Вот для 0,21 явно будут отсутствовать 1/2 (0,5) и 1/4 (0,25), так что первые две цифры после запятой - 00. Ну а потом всякий раз надо будет ВЫЧИТАТЬ из текущего результата очередную степень половины, если эту степень пришлось вставить. Скажем, 1/8 (0,125) тут присутствует - значит, пишем 1 в соответствующий разряд и вычитаем 0,125 (то, что подставили) из 0,21(текущее значение) . Получается 0,085, ну и чешем дальше. Следующий разряд у нас - 0,0625 (1/16), он меньше 0,085, так что опять добавляем в запись результата 1, вычитаем 0,0625 из 0,085... ну и так далее, пока не будет определено необходимое число разрядов.