Russian Qt Forum

Qt => Общие вопросы => Тема начата: TukiNov от Март 24, 2007, 11:42



Название: Qt 3.3.6 : hex строку длинной 512 байт в число (или стр) dec
Отправлено: TukiNov от Март 24, 2007, 11:42
помогите перевести строку примерно такую :
Код:

29200380812203260023032700E00328A102812600270028A1A003806000240124A0038060002501
25A02020202020202020202020202020202020202020202020202020202020202020202020202020
20202020202020202020202020202020202020202020202020202020202020202020202020202020
20202020202020202020202020202020202020202020202020202020202020202020202020202020
20202020202020202020202020202020202020202020202020202020202020202020202020202020
20202020202020202020202020202020202020202020202020202020202020202020202020202020
20202020202020202020202020202020

в число в Dec.
пробовал так :
Код:

QString str = "....";
bool ok;
int hex = str.toInt( &ok, 16 );

но с такой длинной строкой не получается, получается 0.
Может на С++ кто нить код подкинет ?
у меня есть код конвертации, но он в лине не пашет почемуто, получается бред из него.


Название: Qt 3.3.6 : hex строку длинной 512 байт в число (или стр) dec
Отправлено: Sergeich от Март 24, 2007, 16:09
В книжке http://proklondike.com/contentview.php?content=30 (в самом конце) написана реализация классов для работы с большими числами.


Название: Qt 3.3.6 : hex строку длинной 512 байт в число (или стр) dec
Отправлено: Dimchansky от Март 24, 2007, 22:01
Цитата: "Sergeich"
В книжке http://proklondike.com/contentview.php?content=30 (в самом конце) написана реализация классов для работы с большими числами.


В той реализации есть баг.
Лучше скачать исходники с сайта автора http://home.planet.nl/~ammeraal/stlcpp.html
Он должен был исправить ошибку у себя, о которой я ему написал.

Но на самом деле для перевода из одной системы счисления в другую совсем не нужно использовать классы длинных чисел.
Вот есть готовый алгоритм:
http://rsdn.ru/forum/message.aspx?mid=92520&only=1