Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> превод из 10 в 2 для "больших" чисел 
:(
    Опции темы
Rain
Дата 13.11.2005, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 4.11.2005
Где: г.Саратов

Репутация: нет
Всего: нет



Пишу алгоритм шифрования RSA . Большие числа представляю в виде массива цифр(элемент массива 0,....9). Часть программы, в которой осуществляется перевод из 10 в 2 просто вешает программу(использую метод последовательного деления на 2). Подскажите пожалуйста быстрый алгоритм перевода!
Заранее спасибо!
PM MAIL ICQ   Вверх
cardinal
Дата 13.11.2005, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Цитата(Rain @ 13.11.2005, 20:35)
Часть программы, в которой осуществляется перевод из 10 в 2 просто вешает программу

Сделай ProgressBar и добавь DoEvents в процедуру и подвешиваться ничего не будет + ты будешь знать сколько времени осталось.


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Rain
Дата 14.11.2005, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 4.11.2005
Где: г.Саратов

Репутация: нет
Всего: нет



cardinal

От того, что я сделаю ProgressBar, перевод быстрее осуществляться не будет! А мне нужен выигрыш в скорости, а не визуализация!
PM MAIL ICQ   Вверх
Akina
Дата 14.11.2005, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(Rain @ 14.11.2005, 18:25)
мне нужен выигрыш в скорости

Тогда делай на АСМе и подключай компиленный модуль (или DLL).


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Exception
Дата 14.11.2005, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



посмотри в разделе ВБ.НЕТ, там в одной теме был код по переводу из одной сис. исч. в другую..
адаптируй его
PM   Вверх
maxim1000
Дата 14.11.2005, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: нет
Всего: 110



Цитата
использую метод последовательного деления на 2

не стоит...
насколько я понимаю, результат - тоже длинное число (для маленьких чисел преимущества вообще очевидны)
если есть две системы и стоимость операций деления в них одинакова (ну и умножения тоже), ИМХО, стоит использовать способ, основанный на умножении, т.к. в общем случае оно быстрее
кроме того, иногда может принести пользу обработка цифр группами:
1. на стороне исходной системы: сначала перевести из 10-ной в 100-ричную систему (мизерные затраты), а потом уже переводить
2. на стороне конечной системы: переводить не в двоичную, а, например, в 4-ную, а потом заменить каждую 4-ную цифру на пару 2-ных

выигрыш может получиться, т.к. числа станут короче, а для операций с короткими (обычными) числами, на которых строятся длинные, совсем неважно, на 10 делить или на 100...


--------------------
qqq
PM WWW   Вверх
Spawn™Production®
Дата 14.11.2005, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Тестер ПО, VB.NET Developer
**


Профиль
Группа: Участник
Сообщений: 398
Регистрация: 12.4.2005
Где: Зеленоград

Репутация: нет
Всего: 12



maxim1000, а тебе не кажется, что для перевода в любую систему сначала нужно получить число в десятичной системе ?
Смогёшь написать алгоритм перевода из 8-й в 2-ю ?


--------------------
ОС: WinXP SP2 Rus
Frameworks: v1.0.3705, v1.1.4322, v2.0.50215, v2.0.50727
Сам кодю на VB (6.0 (почти забросил), 7.1, 8.0)
PM WWW   Вверх
maxim1000
Дата 14.11.2005, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: нет
Всего: 110



Цитата
а тебе не кажется, что для перевода в любую систему сначала нужно получить число в десятичной системе ?

зачем? smile
чем десятичная система так выделяется среди других?
Цитата
Смогёшь написать алгоритм перевода из 8-й в 2-ю ?

так неинтересно
когда основание одной системы является основанием другой в какой-то степени, все становится совсем просто - берем каждую цифру из 8-ного числа и заменяем ее на три 2-ных цифры по такой табличке:
0 -> 000
1 -> 001
2 -> 010
3 -> 011
4 -> 100
5 -> 101
6 -> 110
7 -> 111
подобные переводы вообще делаются очень быстро
интереснее случай, когда такого соотношения (со степенями) между основаниями нет, тогда нельзя независимо рассматривать отдельные группы цифр...


--------------------
qqq
PM WWW   Вверх
cardinal
Дата 14.11.2005, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Цитата(Rain @ 14.11.2005, 15:25)
От того, что я сделаю ProgressBar, перевод быстрее осуществляться не будет!

Это и слону ясно. smile Ты просто сказал, что эта долгая операция тебе вешает прогу, а такое в VB у меня бывало, когда я не прописывал в цикле DoEvents, что тебе и написал.


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Rain
Дата 15.11.2005, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 4.11.2005
Где: г.Саратов

Репутация: нет
Всего: нет



Спасибо что не остались равнодушны к моей проблеме! С переводом я разобрался!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0522 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.