Здравствуйте, Alexsandra! Алгоритм такой: делишь число на 32 (или 64). Запоминаешь остаток. Затем повторяешь деление до тех пор, пока остаток не станет нулю. Затем записываешь остатки в обратном порядке и число готово. Ответ отправлен: 20.01.2003, 15:06 Отправитель: Igoryk Отвечает X-RayMan
Доброго времени суток, Alexsandra! Это делается по такому алгоритму. Разберем на примере перевода числа 983756 в 32-ричную систему. Цифрами нужной системы будет остаток от деления. Делим число на основание системы: 983756/32=30742 с остатком 12(младшая цифра) 30742/32=960 с остатком 22(вторая цифра) 960/32=30 с остатком 0(третья цифра) 30/32=0 с остатком 30(старшая цифра) Теперь каждой цифре >9 надо придумать обозначение, возьмем вражеский алфавит :). 12 - B, 22 - L, 30 - U 983756(10)=U0LB(32) В 64-ричную - также, только делить надо на 64 (и где ты только наберешься букв для обозначения цифр ;-)) А обратно переводить так: (первая цифра*основание системы)+вторая цифра)*основание системы+3-я и т.д. только при добавлении последней цифры умножать не надо. Т.е. для нашего примера: ((30*32+0)*32+22)*32+12=983756(10)
Приложение: Ответ отправлен: 19.01.2003, 13:26 Отправитель: X-RayMan Отвечает Ayl
Здравствуйте, Alexsandra! Проще всего (ИМХО) перевести из 10-й в 2-ю, а потом в систему с нужным тебе основанием. 32 = 2^5, 64 = 2^6. Поэтому, для перевода из 2-й в 32-ричную надо заменять пентады 2-го числа на 32-ричную цифру, а из 2-й в 64-ричную - секстады. Либо делать "тупо в лоб" - брать число, делить его на основание системы с остатком. Затем частное опять делить с остатком. И так далее до получения частного < основания системы. Потом выписать последнее частное и все остатки друг за другом для получения числа по данному основанию.
Ответ отправлен: 20.01.2003, 12:06 Отправитель: Ayl Отвечает Byter
Приветствую Вас, Alexsandra! Давай мыло ,Отправлю прогу для перевода в любую систему! (из-зи АутГлюка в форму исходник не вставляется)
Ответ отправлен: 21.01.2003, 15:34 Отправитель: Byter Отвечает kvINT
Здравствуйте, Alexsandra! Делить на 32 или 64 и брать результаты и остатки от деления. Пр.: 35/32 1 и 3 в остатке. Значит в 32-ричной системе 13. А в 64-ричной - 35 (0 и 35 в остатке). Ответ отправлен: 21.01.2003, 12:08 Отправитель: kvINT Отвечает vitya
Доброе время суток, Alexsandra! технология перевода числа из любой системы в любую производится следующим образом. Предположим у тебя есть число P в p - чной системе исчисления и число Q в q - чной системе исчисления - итак алгоритм while (P >= q) { div_in_p(P, q) => {P, Qi} //этим шагом получаем новое значение P, которое равно P/q в p-чной системе, a Q1 это остаток от деления, который является i - ым старшим разрядом в q - чной системе. i := i + 1; } Qi = P; // это самый последний остаток. Надеюсь понятно :) В применение к 10 системе все просто, так как нам делить 10-чные числа очень просто. вот пример перевода: (72)10 -> (?)64 72/64 => (8, 1); 8 < 64 -> конец алгоритма (72)10 = (18)64 Ответ отправлен: 20.01.2003, 08:29 Отправитель: vitya Отвечает Tancho
Доброе время суток, Alexsandra! Будем различать двух случаях : 1) Число больше 1 ; 2) Число меньше 1 ; И одинь оговорок : Для обозначения "цифры" больше 9 будем пользоваться "буквенных" символов соответствующую кодовою таблицу. Во функции, которых описаны в приложение, мы изпользуем представление чисел в полиномиальном виде.Если число больше 1 то в полиномиальном записе есть степени базый(p) больше 1, если число меньше 1 то все степени базый(p) в полиномиальном записе отрицательный.Для того чтобы перевести число из 10 системы в систему с основаниями 32 и 64, надо в основную прогу положить Base = 32 и Base = 64.
Приложение: Ответ отправлен: 20.01.2003, 11:25 Отправитель: Tancho
Форма отправки вопроса
Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook"
и "Microsoft Outlook Express". В программе The Bat!
подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте,
что в некоторых браузерах могут стоять запреты на открытие других
окон, а также "чрезмерное" кэширование данных,
при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet
Explorer 5.0+ или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.