Перевод числа из hex в dec10.07.2016, 15:37. Показов 36538. Ответов 40
Метки нет (Все метки)
Привет, можете подсказать как можно перевести 16-ричное число произвольной длины (например, заданное с помощью строки) в десятичную сс? (также можно в строку)
0
|
|
| 10.07.2016, 15:37 | |
|
Ответы с готовыми решениями:
40
Перевод чисел Bin - Oct - Dec - Hex [BMP] HEX (из HEX-редактора) в DEC Из Hex в Dec |
| 12.07.2016, 21:47 | |
|
0
|
|
| 12.07.2016, 21:50 [ТС] | |
|
IGPIGP, к сожалению, не получилось
![]() '1', '2', 'A', 'C', 'c', 'f' - я так понял представляется число 12ACCF в hex По идее результат перевода в dec число должен содержать как минимум столько же цифр, сколько их было изначально в hex, а у вас число цифр в числе уменьшилось)
0
|
|
|
125 / 125 / 44
Регистрация: 05.10.2013
Сообщений: 462
|
||||||
| 12.07.2016, 21:53 | ||||||
|
Ferrari F1,
2
|
||||||
|
Комп_Оратор)
|
||
| 12.07.2016, 22:08 | ||
|
но логика кривая, да. Цифры 16-ричные а представляют будто десятичные разряды. ![]()
0
|
||
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||||||
| 13.07.2016, 07:54 | ||||||
1
|
||||||
| 13.07.2016, 11:59 | |
|
Не по теме: Mr.X - человек из космоса с мегаформатным кодом
0
|
|
| 13.07.2016, 14:20 [ТС] | |
|
HenryDukart, можете объяснить словесно алгоритм пожалуйста?
Мне бы просто никогда не взбрело в голову использовать стек. Возможно, потому, что ни разу не писал деление...
0
|
|
|
125 / 125 / 44
Регистрация: 05.10.2013
Сообщений: 462
|
|||||||||||
| 13.07.2016, 14:40 | |||||||||||
|
Ferrari F1, алгоритм работает согласно вашему рисунку. Функция divide_by_10 делит число в шестнадцатеричной системе, которое находится в строке, на 10. Возвращает остаток от деления (в десятичной системе в виде int) и частное (в виде строки в шестнадцатеричной системе). Частное на предыдущем шаге используется как делимое на следующем.
Остатки помещаются в стек, потому что их нужно будет извлекать в обратном порядке (опять же смотрите вашу картинку). Проблема будет, если на вход подать "0". Чтобы убрать эту ошибку необходимо исправить цикл
1
|
|||||||||||
| 13.07.2016, 14:45 [ТС] | |
|
HenryDukart, я просто уже 3ий день бился над реализацией этого алгоритма.
В голову ничего не приходит путнего. Не додумался использовать стек и строковые потоки (хоть и в вашем коде используется устаревшая их версия). Я не знаю как преобрести навык проектирования алгоритма решения задачи. Может, посоветует кто, как такое умение приобрести?
0
|
|
|
125 / 125 / 44
Регистрация: 05.10.2013
Сообщений: 462
|
|
| 13.07.2016, 14:49 | |
|
Ferrari F1, книги и практика вам в помощь.
0
|
|
| 13.07.2016, 14:53 [ТС] | |
|
HenryDukart, у меня просто не получается формализовать этот процесс (процесс продумывания алгоритма) на все возникающие передо мной задачи.
По-вашему, есть какие-то общие правила составления алгоритма или это творческий процесс?
0
|
|
|
125 / 125 / 44
Регистрация: 05.10.2013
Сообщений: 462
|
|
| 13.07.2016, 15:13 | |
|
Ferrari F1,
Не по теме: Считаю, что изобретение алгоритма требует много знаний, творческого потенциала и, возможно, везения. А вот уже для самого "кодирования" достаточно обладать памятью и опытом.
0
|
|
| 13.07.2016, 16:42 [ТС] | |
|
Нуу, я немного не об этом, конечно... Я вот знаю как на бумажке делить в столбик.
А как научиться переводить этот навык на компьютерный язык? Вот в подобных случаях и возникают, как правило, трудности...
0
|
|
| 13.07.2016, 16:49 | ||
|
Несколько раз в теме писалось: "нужна длинная арифметика". Ее в интернете навалом - и на строках и на массивах и на векторах, но ТС ничего ни искать ни делать самостоятельно (по аналогии со школьным умножением и сложением в столбик) не стал. С таким подходом С++ никогда не осилить
1
|
||
| 13.07.2016, 16:59 [ТС] | |||||||
|
А вместо этого получается какая-то лажа в виде багов. Пишешь например, а потом выясняется, что числа типа F00001 неверно обрабатываются из-за наличия промежуточных нулей. Или например первая (или любая внутренняя) цифра в числе не делится нацело на десять (она меньше 10), тогда нужно запоминать эту цифру и к след. разряду ее приписывать (1F01). Слишком много случаев получается, и в голове их все, бывает, не можешь удержать. Как следствие - баги...
0
|
|||||||
| 13.07.2016, 17:05 | |
|
Если код есть, то его надо писать в первом сообщении, а не в 35м. Причем писать с комментариями, зачем, что и как делаешь. Вместе со словесным описанием алгоритма, который реализует этот код. Тогда будет видно, где и какие ошибки и времени (нашего и вашего) будет потрачено меньше, а толку будет больше.
Вот, как-то так
0
|
|
| 13.07.2016, 17:15 [ТС] | |
|
И я ума не приложу, как так в голове продумать алгоритм, чтобы он был обобщенным, а не охватывал лишь частные случаи..
Это я говорю не только о делении, а вообще обо всех возникающих задачах... Добавлено через 3 минуты Перед тем, как писать это деление, я никакой архитектуры программы не продумывал. Просто сел и так навскидку попытался сделать... Без псевдокода, диаграмм и тп, как пишут об этом в книгах. И как результат, тут некоторые накидали код за час-два, а я за третий день не могу нормально ничего набросать. Да как вобще бороться с этой проблемой?
0
|
|
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 13.07.2016, 17:46 | ||
|
1
|
||
| 14.07.2016, 15:10 | ||
|
От программиста нужен результат, а не медитации и объяснения типа "хотел обобщить, сделать лучше, эффективнее, но не получилось". Все обобщения и улучшения - после (если они окажутся действительно необходимыми). Что на самом деле лучше выясняется в процессе реализации, а не в процессе многодневного "нечегонеделания".
1
|
||
| 14.07.2016, 15:10 | |
|
Помогаю со студенческими работами здесь
40
Из HEX в DEC
Перевод из HEX в DEC перевод из hex в dec Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo
https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html
и его же старой инструкции по установке Lazarus с gtk2. . .
|
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер.
Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
|
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта
Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
|
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром.
возможно получится прикрутить интерпретатор питон для кастомизации игровой логики.
что есть на текущий момент:. . .
|
|
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2.
Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
|
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|