Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
porshe
52 / 46 / 17
Регистрация: 18.07.2014
Сообщений: 194
#1

Перевод длинного десятичного числа в шестнадцатиричное - C++

04.07.2015, 19:57. Просмотров 703. Ответов 12
Метки нет (Все метки)

Здравствуйте.
Очень интересует меня вопрос: как перевести большое число (до 2^128), представленное в виде строки из 10-ричной СС в число в 16-ричной СС (так же строка)?

Единственное, что приходит в голову - перевести в 2-ичную СС, а потом в 16-ричную.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.07.2015, 19:57     Перевод длинного десятичного числа в шестнадцатиричное
Посмотрите здесь:

C++ Перевод длинного двоичного числа в десятичную СС
C++ Конвертор десятичного числа в шестнадцатиричное с алгоритмом преобразования
C++ Перевод вещественного десятичного числа в любую СС
C++ Перевод десятичного числа в двоичное
C++ Перевод десятичного числа во внутреннее представление
C++ Перевод десятичного вещественного числа в новую систему счисления
C++ Перевод отрицательного целого десятичного числа в двоичное
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6193 / 5796 / 1877
Регистрация: 18.12.2011
Сообщений: 14,809
Завершенные тесты: 1
04.07.2015, 20:18     Перевод длинного десятичного числа в шестнадцатиричное #2
Если есть деление длинных десятичных чисел,
то перевод делается по стандарту:
- делите на 16, запоминаете остаток от деления в виде букв '0'-'9', 'A'-'F'
- результат деления снова делите на 16 и т.д.

Кстати, для перевода в двоичную систему пришлось бы делать то же самое, только делить на 2.
porshe
52 / 46 / 17
Регистрация: 18.07.2014
Сообщений: 194
04.07.2015, 20:19  [ТС]     Перевод длинного десятичного числа в шестнадцатиричное #3
Цитата Сообщение от zss Посмотреть сообщение
Если есть деление длинных десятичных чисел.
Проблема в том, что деления как раз нет.
zss
Модератор
Эксперт С++
6193 / 5796 / 1877
Регистрация: 18.12.2011
Сообщений: 14,809
Завершенные тесты: 1
04.07.2015, 20:26     Перевод длинного десятичного числа в шестнадцатиричное #4
Деление длинных чисел столбиком
porshe
52 / 46 / 17
Регистрация: 18.07.2014
Сообщений: 194
04.07.2015, 20:29  [ТС]     Перевод длинного десятичного числа в шестнадцатиричное #5
Цитата Сообщение от zss Посмотреть сообщение
http://cppalgo.blogspot.com/2010/08/div-mod_29.html
Прикол в том, что я и так делаю длинную арифметику, без использования строк. И если я буду использовать подобный алгоритм, то это получится длинная арифметика в длинной арифметике :\
zss
Модератор
Эксперт С++
6193 / 5796 / 1877
Регистрация: 18.12.2011
Сообщений: 14,809
Завершенные тесты: 1
04.07.2015, 21:03     Перевод длинного десятичного числа в шестнадцатиричное #6
Цитата Сообщение от porshe Посмотреть сообщение
представленное в виде строки из 10-ричной СС
Цитата Сообщение от porshe Посмотреть сообщение
делаю длинную арифметику, без использования строк
Как это согласуется?
porshe
52 / 46 / 17
Регистрация: 18.07.2014
Сообщений: 194
04.07.2015, 21:30  [ТС]     Перевод длинного десятичного числа в шестнадцатиричное #7
Цитата Сообщение от zss Посмотреть сообщение
Как это согласуется?
Я организую чтение числа из потока. А чтение организовывается исключительно с помощью строк.
Evg
Эксперт CАвтор FAQ
17309 / 5557 / 347
Регистрация: 30.03.2009
Сообщений: 15,126
Записей в блоге: 26
05.07.2015, 12:08     Перевод длинного десятичного числа в шестнадцатиричное #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Перевод чисел из одной системы счисления в другую
porshe
52 / 46 / 17
Регистрация: 18.07.2014
Сообщений: 194
05.07.2015, 12:35  [ТС]     Перевод длинного десятичного числа в шестнадцатиричное #9
Evg, спасибо
IrineK
Заблокирован
05.07.2015, 15:09     Перевод длинного десятичного числа в шестнадцатиричное #10
Перевод из/в любую систему исчисления от 2 до 36
Evg
Эксперт CАвтор FAQ
17309 / 5557 / 347
Регистрация: 30.03.2009
Сообщений: 15,126
Записей в блоге: 26
05.07.2015, 15:14     Перевод длинного десятичного числа в шестнадцатиричное #11
Цитата Сообщение от IrineK Посмотреть сообщение
Перевод из/в любую систему исчисления от 2 до 36
Абсолютно стандартные ошибки и, вероятно, недопонимание терминов. По смыслу названия функции вызов "DecimalToBase (12345, N, res);" должна переводить из 10'ной в N'ую. Но если я напишу "DecimalToBase (0x12345, N, res);", то функция с именем DecimalToBase начнёт переводить из 16'ной в N'ую. Что явно не согласуется ни с названием функции, ни с комментариями. Чтоб дальше не спорить, могу сразу отправить читать http://www.cyberforum.ru/blogs/18334/blog96.html
IrineK
Заблокирован
05.07.2015, 15:21     Перевод длинного десятичного числа в шестнадцатиричное #12
Ага.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.07.2015, 11:12     Перевод длинного десятичного числа в шестнадцатиричное
Еще ссылки по теме:

C++ Перевод отрицательного целого десятичного числа в двоичное
Перевод числа из двоично-десятичного в десятичное C++
Перевод десятичного числа в шестнадцатеричное C++
C++ Перевод десятичного числа в двоичное число
Перевод десятичного числа в двоичное C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
SerVal
23 / 23 / 2
Регистрация: 16.04.2015
Сообщений: 207
25.07.2015, 11:12     Перевод длинного десятичного числа в шестнадцатиричное #13
"Прикол в том, что я и так делаю длинную арифметику, без использования строк."
- и как успехи (в смысле "быстродействие") ?
***
D:\aProjects\TestBigInt\x64\Release>TestBigInt.exe -factorial
--- factorial test ---
Calculating factorial: 100000 !
Big integer : 2824 .. 0
number of decimal digits = 456574
number of segments = 50731
Exec time : 12.839 seconds.
***
Yandex
Объявления
25.07.2015, 11:12     Перевод длинного десятичного числа в шестнадцатиричное
Ответ Создать тему
Опции темы

Текущее время: 22:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru