1 | ||||||
Перевод числа из десятичной системы счисления в шестнадцатеричную01.09.2014, 14:39. Показов 22453. Ответов 40
Метки нет (Все метки)
Выскажите вашу точку зрения по этому коду
Задача: Напишите функцию, которая будет переводить числа из десятичной системы счисления в шестнадцатеричную. Мой код на C++Builder 6 (не ругать):
Правильно ли он написан? Как можно его улучшить? Хорошо ли придумано с "case"? Выскажите вашу точку зрения по этому коду. Спасибо.
0
|
01.09.2014, 14:39 | |
Ответы с готовыми решениями:
40
Перевод из десятичной системы счисления в шестнадцатеричную Перевод чисел из десятичной системы счисления в двоичную, восьмеричную, шестнадцатеричную Перевод числа из десятичной в шестнадцатеричную систему счисления Перевод числа из восьмеричной системы счисления в шестнадцатеричную систему счисления |
Native x86
5679 / 3414 / 964
Регистрация: 13.02.2013
Сообщений: 10,832
|
||||||
01.09.2014, 14:44 | 2 | |||||
Как минимум вместо вот этой байды:
1
|
01.09.2014, 14:47 | 3 |
Со стрингами дел почти не имел, но думаю что и чар к ним должен хорошо приконкатенироваться, так что b можно чаром сделать. Переменная с лишняя, сразу с копией ch работайте, вы же ее потом изменяете все равно. С кейс придумано хорошо, но гораздо лучше использовать таблицу символов - '0' + d даст символ от 0 до 9, от A до F надо прибавить другое число. Вайл тру конечно стильно, но можно упростить до вайл что-то-осталось-от-числа.
1
|
01.09.2014, 15:22 [ТС] | 4 | |||||
Реализовал как написано выше,спасибо.
А есть ещё идеи по модернизации кода? Спасибо.
0
|
01.09.2014, 15:30 | 5 | |||||
Насчет модернизации - выбирайте сами, что вам ближе - работать с массивом чаров как советовал quwy, или с самими чарами по таблице символов, как рекомендовал я. Еще у меня подозрение что в вайле хватит и
1
|
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
|
||||||
01.09.2014, 15:37 | 8 | |||||
AndHacker, инициализацию массива можно и попроще
1
|
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
|
|
01.09.2014, 15:44 | 10 |
AndHacker, так и знал, что двояко написал. Имел ввиду в а, при вводе значения.
1
|
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
|
|
01.09.2014, 15:51 | 12 |
странно, в студии вывода просто нет. Посмотрю поподробнее.
Добавлено через 3 минуты тут надо or вместо and ведь, может не ту версию кода выложили? Но в обоих случаях отсутствует вывод при вводе 0, и было бы неплохо добавить 0х в начало строки, а то выглядит как десятичное число.
1
|
01.09.2014, 15:52 [ТС] | 13 | |||||
Всем спасибо за замечания.
В результате танцев с бубнами получился следующий код, который выглядит в два раза короче чем изначальный Ещё предложения и замечания будут?
0
|
2338 / 1826 / 753
Регистрация: 27.07.2012
Сообщений: 5,407
|
||||||
01.09.2014, 15:53 | 14 | |||||
Замечания в комментариях:
1
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
|
||||||
01.09.2014, 15:55 | 15 | |||||
Просто причесал:
1
|
01.09.2014, 15:56 | 16 |
Если оставаться в стрингах, то больше вряд ли что-то удастся ужать, кроме моей рекомендации про таблицу символов (третий раз пишу).
А если идти дальше, то я бы написал не функцию, возвращающую стринг, а функцию, заполняющую нужными символами строку (не стринг) с переданного указателя. И тогда не нужна перегруженная конкатенация, которая за одним значком '+' скрывает громоздкие методы внутри.
1
|
01.09.2014, 19:13 [ТС] | 19 | ||||||||||
Это - Builder 2002 года. --- Добавлено через 2 минуты Отличная мысль и не надо объявлять массив. Внедрю в код. Добавлено через 22 минуты Всем спасибо за замечания и предложения. В итоге получился следующий код: Ещё предложения и замечания будут? +проверка на ноль
0
|
Native x86
5679 / 3414 / 964
Регистрация: 13.02.2013
Сообщений: 10,832
|
||||||
01.09.2014, 19:28 | 20 | |||||
1
|
01.09.2014, 19:28 | |
01.09.2014, 19:28 | |
Помогаю со студенческими работами здесь
20
Перевод натурального числа из десятичной системы счисления в систему счисления по основанию Рекурсия: перевод целого числа из десятичной системы счисления в 9 систему счисления Перевод числа из десятичной системы счисления Перевод числа из десятичной системы счисления Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Какой локальный веб-сервер выбрать
InfoMaster 19.01.2025
В современной веб-разработке локальные веб-серверы играют ключевую роль, предоставляя разработчикам надежную среду для создания, тестирования и отладки веб-приложений без необходимости использования. . .
|
Почему планшеты и iPad уже не так популярны, как раньше
InfoMaster 19.01.2025
Эра революционных инноваций
История планшетных компьютеров началась задолго до того, как эти устройства стали привычными спутниками нашей повседневной жизни. В начале 1990-х годов появились первые. . .
|
Как самому прошить BIOS ноутбука
InfoMaster 19.01.2025
BIOS (Basic Input/ Output System) представляет собой важнейший компонент любого компьютера или ноутбука, который обеспечивает базовое взаимодействие между аппаратным и программным обеспечением. . .
|
Какой Linux выбрать для домашнего компьютера
InfoMaster 19.01.2025
Современные реалии выбора операционной системы
В современном мире выбор операционной системы для домашнего компьютера становится все более важным решением, которое может существенно повлиять на. . .
|
Как объединить два словаря одним выражением в Python
InfoMaster 19.01.2025
В мире программирования на Python работа со словарями является неотъемлемой частью разработки. Словари представляют собой мощный инструмент для хранения и обработки данных в формате "ключ-значение". . . .
|
Как без исключения проверить существование файла в Python
InfoMaster 19.01.2025
При разработке программного обеспечения на Python часто возникает необходимость проверить существование файла перед выполнением операций с ним. Это критически важная задача, которая помогает избежать. . .
|
Как определить, содержит ли строка подстроку в JavaScript
InfoMaster 19.01.2025
При разработке веб-приложений часто возникает необходимость выполнять различные операции со строками, среди которых особое место занимает поиск подстрок. JavaScript предоставляет несколько встроенных. . .
|
Что такое метаклассы в Python
InfoMaster 19.01.2025
Метаклассы в Python представляют собой один из самых мощных и одновременно сложных механизмов языка, позволяющий программистам контролировать процесс создания классов. По своей сути, метакласс. . .
|
Как удалить свойство из объекта JavaScript
InfoMaster 19.01.2025
В современной веб-разработке объекты JavaScript играют фундаментальную роль в организации и структурировании данных. Они представляют собой контейнеры, которые хранят связанные данные и. . .
|
Какая разница между String и string в C#
InfoMaster 19.01.2025
В языке программирования C# существует интересная особенность: для работы со строками можно использовать как String, так и string. Эта двойственность часто вызывает вопросы у разработчиков, особенно. . .
|
Как в Git откатить репозиторий к предыдущему коммиту
InfoMaster 19.01.2025
В современной разработке программного обеспечения система контроля версий Git стала неотъемлемой частью рабочего процесса, предоставляя разработчикам мощные инструменты для управления изменениями в. . .
|
Как работают замыкания (closure) в JavaScript
InfoMaster 19.01.2025
В мире современной веб-разработки замыкания (closures) представляют собой один из фундаментальных концептов языка JavaScript, который часто вызывает затруднения у начинающих разработчиков, но при. . .
|