Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Преобразование из "m" в "n" с-му счисления |
Автор: Killer_13 4.5.2009, 00:48 |
Нужно переводить числа из одной системы счисления в другую. Например, я задаю, ->перевести число из "3" в ->"16" - ричную с-му счисления ->собственно ввожу число. вот соственноhttp://ru.wikipedia.org/wiki/%D0%A1%D1%85%D0%B5%D0%BC%D0%B0_%D0%93%D0%BE%D1%80%D0%BD%D0%B5%D1%80%D0%B0 http://de.wikipedia.org/wiki/Horner-Schema препод подсказал, что можна сделать с помощью схемы-метода Горнера Но с какого боку подойти - незнаю. :( Нужно все это дело на "С" мутить. Может кто подкинет еще какие то идейки, может кто делал? С чего начать. Если кто-то делал даже, исходник не бросайте, сам хочу. Мне б только подсказки, советы. Спасибо. |
Автор: zim22 4.5.2009, 07:47 | ||||
radix - база системы счисления. Принимает значения 2–36. Добавлено @ 07:59 Из 3 в 16. Используется метод брутфорса(грубой силы). Сначала мы генерируем десятичные числа и конвертируем их в 3 систему счисления, пока сгенерированное нами число не совпадёт с введённым пользователем. А потом полученное 10 число конвертим в 16.
|
Автор: Killer_13 4.5.2009, 09:56 |
забыл дописать, что нельзя пользоваться ф-циями стандартной библиотеки, например "strtoul" и так д... :( Итоа не стандартная ф-ция, но все равно думаю, что нельзя. :( |
Автор: math64 4.5.2009, 10:30 |
Возьми исходики strtoul и itoa (для gcc они открыты) и сделай как там Или нужно преобразовывать числа не влезающие в unsigned long и usigned __int64? |
Автор: Killer_13 4.5.2009, 10:33 |
![]() ![]() ![]() ![]() ![]() ![]() Еще бы подсказали как посмотреть? :( Пользуюсь "cygwin". |
Автор: math64 4.5.2009, 12:00 | ||
Алгоритм примерно такой (в библиотеке сделано оптимельнее):
|