| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > перевод дробных чисел в разные системы числения |
| Автор: VingradFan 11.10.2006, 17:46 |
| mes, спасибо огромное за коммент.... позволю себе еще один вопрос про С.С. как перевести в 2-ичную СС 0.064 теоретечиски надо уножать на 2 пока дроб часть не будет ноль но нулем она не становица и период не выделяеца!!! может у вас получица? |
| Автор: maxim1000 11.10.2006, 18:11 |
| число это представляется бесконечной дробью здесь был описан общий алгоритм http://forum.vingrad.ru/index.php?showtopic=64505&view=findpost&p=517628 а периоды выделяются так же, как и в случае десятичной системы (когда-то алгоритм знал, но забыл, т.к. не пользовался) Добавлено @ 18:24 думаю, можно сделать так: в каждый момент времени для получения очередной цифры нам нужно: 1. проверить, больше ли оно, чем 0.5 - так мы получим эту очередную цифру 2. если больше - отнять 0.5 3. умножить на 2 4. перейти на шаг 1 число, которым мы оперируем на каждом шаге, полностью определяет весь дальнейший процесс это значит, что если оно повторится, то процесс станет периодическим определение периода последовательности этих чисел: основная проблема в том, что периодическая последовательность может иметь непериодический кусок в начале, а уже потом начать повторяться для обнаружения этого есть метод <не помню кого>: сравниваем x[n] и x[2*n], перебирая n от 1 до "пока не найдём" т.к. n неограничено растёт, то скоро оно станет больше, чем длина начального непериодического кусочка, после этого, как только оно станет кратным периоду x[n] и x[n+n] будут равны, т.к. x[n+n]=x[n+m*T]=x[n] тогда достаточно поискать периоди среди множителей n (ну или если не жалко процессорного времени, просто пройтись в поисках периода от 1 до n) |
| Автор: VingradFan 19.10.2006, 20:41 |
| не пожалел времени: 0.064=(00001101010011100001011010001001101101110011111011111100101011000111101001011101100100100011000001000) тоесть период выделился но задание было таким: записать внутреннее представление числа 0,064 и каким же макаром оно поместица в 32-разрядную сетку????(мантиса явно не влезает решите плиз...оч надо!!! |