Перевод числа из hex в dec10.07.2016, 15:37. Показов 36819. Ответов 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 | |
|
Из HEX в DEC
Перевод из HEX в DEC перевод из hex в dec Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|