Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2011, 19:21   #1
Zhana
Пользователь
 
Регистрация: 27.10.2011
Сообщений: 11
По умолчанию калькулятор перевода чисел в шестнадцатеричную систему счисления

Пожалуйста помогите доделать калькулятор с переводом 2-х, 8-х и 10-х чисел в шестнадцатеричную систему счисления. Вот что я сделала. Осталось наложить процедуру на "равно", но я не знаю какую. Помогите или объясните пожалуйста.
Вложения
Тип файла: txt Новый текстовый документ.txt (3.7 Кб, 163 просмотров)
Zhana вне форума Ответить с цитированием
Старый 14.11.2011, 20:39   #2
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Чтобы десятичное число перевести в шестнадцатиричное, достаточно сделать просто
Код:
edit1.text:=inttohex(strtoint(edit1.text));
А для остальных придется писать функцию вручную.

Да, кстати. У каждого компонента формы есть поле tag, в которое можно в инспекторе записать любое число. У тебя есть десять кнопок с почти одинаковыми обработчиками. Если всем им проставить в поле tag цифры от 0 до 9, то можно обойтись одним обработчиком на все 10 кнопок )
Son Of Pain вне форума Ответить с цитированием
Старый 14.11.2011, 22:05   #3
Zhana
Пользователь
 
Регистрация: 27.10.2011
Сообщений: 11
По умолчанию

спасибо, как оказывается просто. теперь только осталось понять как происходит перевод из восьмеричной системы в шестнадцати.
Zhana вне форума Ответить с цитированием
Старый 14.11.2011, 22:51   #4
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Проще всего сначала перевести в десятичную, а из нее уже в 16.
Son Of Pain вне форума Ответить с цитированием
Старый 14.11.2011, 22:57   #5
Zhana
Пользователь
 
Регистрация: 27.10.2011
Сообщений: 11
По умолчанию

Спасибо огромнейшее, я попробую, завтра пришлю ответ: получилось или нет
Zhana вне форума Ответить с цитированием
Старый 15.11.2011, 03:43   #6
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

проще из восьмеричной в двоичную а из двоичной в шестнадцатиричную...
восьмеричная цифра = 3 бинарным
шестнадцатиричная = 4 бинаным
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 17.11.2011, 19:28   #7
Zhana
Пользователь
 
Регистрация: 27.10.2011
Сообщений: 11
По умолчанию

Ребята, снова нужна ваша помощь, я нашла способы решения, но загоняю в делфи и программа не запускается, выдаются ошибки. Пожалуйста помогите их исправить. И кстати представленный код тоже ошибку выдает...
Вложения
Тип файла: rar перевод чисел.rar (11.5 Кб, 29 просмотров)
Zhana вне форума Ответить с цитированием
Старый 17.11.2011, 21:36   #8
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

Цитата:
Сообщение от Zhana Посмотреть сообщение
Ребята, снова нужна ваша помощь, я нашла способы решения, но загоняю в делфи и программа не запускается, выдаются ошибки. Пожалуйста помогите их исправить. И кстати представленный код тоже ошибку выдает...
собственно какую именно ошибку (ошибки)
Код:
edit1.text:=inttohex(strtoint(edit1.text));
возможно нужно писать :
Код:
edit1.text:= IntToStr(inttohex(strtoint(edit1.text)));
возможно тогда ошибка исчезнет... насколько я понимаю после перевода из 10 в 16 содержится все ещё числовое значение... хотя и я могу ошибаться... или же нужно подключать какую либо библиотеку...
а с остальными неполадками пожалуста больше конкретики...
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 17.11.2011, 23:00   #9
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Цитата:
Сообщение от VIK_aka_TOR Посмотреть сообщение
собственно какую именно ошибку (ошибки)
Код:
edit1.text:=inttohex(strtoint(edit1.text));
возможно нужно писать :
Код:
edit1.text:= IntToStr(inttohex(strtoint(edit1.text)));
возможно тогда ошибка исчезнет... насколько я понимаю после перевода из 10 в 16 содержится все ещё числовое значение...
Нет Число хранится в памяти как число. Оно не может быть там ни десятичным, ни шестнадцатеричным, ни восьмеричным. Функция inttohex переводит число в шестнадцатеричную строку. Правда я уже не помню, можно ли в делфи упускать второй параметр этой функции. Возможно нужно писать edit1.text:=inttohex(strtoint(edit1 .text), 0);

Последний раз редактировалось Son Of Pain; 17.11.2011 в 23:02.
Son Of Pain вне форума Ответить с цитированием
Старый 17.11.2011, 23:26   #10
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

ну.... данной фуункцией не пользовался... дак... догадки))
стоит лишь ждать отчетности от создательницы темы...
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Калькулятор для перевода чисел в шестнадцатиричную систему счисления Zhana Помощь студентам 0 27.10.2011 18:18
перевода целого числа в римскую систему счисления enternity Помощь студентам 2 17.10.2011 01:37
калькулятор перевода из 16 в 10 систему в С++ tima39 Общие вопросы C/C++ 1 19.04.2011 20:13
формула перевода чисел из десятичной системы счисления в 2-ую,8-ую и 16-ую в Microsoft Visual c#? Лютик Помощь студентам 0 18.12.2009 10:42
написал алгоритм перевода чисел из 10 в любую другую систему счисления...компилиться, но не выполняеться STR78 Общие вопросы C/C++ 4 03.11.2008 17:07