Форум по Delphi программированию

 



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.12.2020, 03:34
Bad-Teo Bad-Teo вне форума
Прохожий
 
Регистрация: 05.08.2015
Сообщения: 9
Версия Delphi: RADStudio10.3.3
Репутация: 10
По умолчанию Действия с шестнадцатеричным значением

Добрый день.
На калькуляторе сделал расчет. Взял шестнадцатеричное значение 1206 умножил на 20 получил 240С0. Затем перевел в десятичное (dec) и получил результат 147648.



Подскажите пожалуйста кодом как такой расчет сделать на Delphi если значение буду вводит в Edit.
Ответить с цитированием
  #2  
Старый 18.12.2020, 10:12
x128 x128 вне форума
Новичок
 
Регистрация: 03.02.2010
Сообщения: 64
Репутация: 133
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  a,b,c: integer;
begin
  a:=0; b:=0; c:=0;
  TryStrToInt(Edit1.Text, a);
  TryStrToInt(Edit2.Text, b);
  c:=a*b;
  Edit3.Text:=IntToHex(c, 4);
  Label1.Caption:=IntToStr(c);
end;

scr.png
Ответить с цитированием
Этот пользователь сказал Спасибо x128 за это полезное сообщение:
Bad-Teo (18.12.2020)
  #3  
Старый 18.12.2020, 10:58
Bad-Teo Bad-Teo вне форума
Прохожий
 
Регистрация: 05.08.2015
Сообщения: 9
Версия Delphi: RADStudio10.3.3
Репутация: 10
По умолчанию

Вопрос. А как можно сделать проще.
Скажем в Edit1 ввожу 1206, а в Edit2 получаю 147648
Ответить с цитированием
  #4  
Старый 18.12.2020, 11:58
x128 x128 вне форума
Новичок
 
Регистрация: 03.02.2010
Сообщения: 64
Репутация: 133
По умолчанию

Куда еще проще? Если речь про ввод числа без префикса, то его можно явно указать в коде: StrToInt('$'+Edit1.Text).
Ответить с цитированием
  #5  
Старый 18.12.2020, 13:48
Bad-Teo Bad-Teo вне форума
Прохожий
 
Регистрация: 05.08.2015
Сообщения: 9
Версия Delphi: RADStudio10.3.3
Репутация: 10
По умолчанию

Цитата:
Сообщение от x128
Куда еще проще? Если речь про ввод числа без префикса, то его можно явно указать в коде: StrToInt('$'+Edit1.Text).
Я имел ввиду чтобы сделать вот так:
Ответить с цитированием
  #6  
Старый 18.12.2020, 13:56
Bad-Teo Bad-Teo вне форума
Прохожий
 
Регистрация: 05.08.2015
Сообщения: 9
Версия Delphi: RADStudio10.3.3
Репутация: 10
По умолчанию

Код:
Edit2.Text := IntToStr(StrToInt('0x'+Edit1.Text) * StrToInt('$20'));

Я правильно сделал ?
Ответить с цитированием
  #7  
Старый 18.12.2020, 14:01
x128 x128 вне форума
Новичок
 
Регистрация: 03.02.2010
Сообщения: 64
Репутация: 133
По умолчанию

Если 20 это константа, то как я написал выше, т.е.: Edit2.Text:=IntToStr(StrToInt('$'+Edit1.Text)*$20) ;
scr.png
Ответить с цитированием
Этот пользователь сказал Спасибо x128 за это полезное сообщение:
Bad-Teo (18.12.2020)
  #8  
Старый 18.12.2020, 20:38
Bad-Teo Bad-Teo вне форума
Прохожий
 
Регистрация: 05.08.2015
Сообщения: 9
Версия Delphi: RADStudio10.3.3
Репутация: 10
По умолчанию

Возник еще вопрос. А как правильно делать сложение и вычитание чисел, представленных в шестнадцатиричной форме ?
Например FFFF - 1206 = EDF9

Последний раз редактировалось Bad-Teo, 18.12.2020 в 20:49.
Ответить с цитированием
  #9  
Старый 19.12.2020, 00:58
x128 x128 вне форума
Новичок
 
Регистрация: 03.02.2010
Сообщения: 64
Репутация: 133
По умолчанию

Символ $ перед числом указывает на шестнадцатеричный формат: i:=$FFFF - $1206.
Ответить с цитированием
Этот пользователь сказал Спасибо x128 за это полезное сообщение:
Bad-Teo (19.12.2020)
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:03.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2021

ВКонтакте   Facebook   Twitter