Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Delphi] Перевод из 16-ной в 10-ную, систему счисления 
:(
    Опции темы
123456789012345
  Дата 12.3.2007, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 12.3.2007

Репутация: нет
Всего: нет



Мне необходимо написать программу, переводящую число из 10-ой СС в 16-ую и обратно. Если с первой я справился, то как сделать "обратный перевод", если у меня числа только до 25510 (=FF16). Ввод-вывод я осуществлял через Memo1 и Memo2.  smile 
PM MAIL   Вверх
Rodman
Дата 12.3.2007, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 26
Всего: 122



PM MAIL WWW Skype GTalk YIM MSN   Вверх
Sunvas
Дата 12.3.2007, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 7
Всего: 89



Если числа небольшие, то проще воспользоваться фором и ифом:
Код

  for n:=0 to 255 do
  begin
   if inttohex(n,2)=n2 then
   begin
   showmessage(inttostr(n));
   end



--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Snowy
Дата 12.3.2007, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 4
Всего: 484



Sunvas, это чего за шиза?
Код

var
  i: integer;
  s: string;
begin
  i := 1234;
  s := IntToHex(i, 4); // в hex
  i := StrToIntDef('$'+s, 0); // из hex
end;

PM MAIL   Вверх
123456789012345
Дата 12.3.2007, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 12.3.2007

Репутация: нет
Всего: нет



Цитата

Код

 i := StrToIntDef('$'+s, 0); // из hex


 smile 


не понял, что такое "...IntDef"? что за формат? и как эта функция работает? Подскажите пожалуйста!
PM MAIL   Вверх
Snowy
Дата 12.3.2007, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 4
Всего: 484



Это банальное StrToInt, только с защитой от ошибок.
Если дать ему неверную строку, которая в число не переводится, то вернёт значение по умолчанию (в данном случае 0).
Обычная StrToInt в таком случае вызовет ошибку.
PM MAIL   Вверх
Sunvas
Дата 12.3.2007, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 7
Всего: 89



Цитата(Snowy @  12.3.2007,  19:30 Найти цитируемый пост)
Sunvas, это чего за шиза?

Попытка реализации для маленьких чисел, дабы проще.  smile 

Цитата(Snowy @  12.3.2007,  19:30 Найти цитируемый пост)
s := IntToHex(i, 4); // в hex

Если i=1, это эта функция даст не весьма хороший результат - 0001. Следовательно вместо 4 надо подставить значение log{16}(i) с округлением в большую сторону.


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0472 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.