16進数値を10進数値に変換するには?

解決


Msun  2005-11-06 11:02:14  No: 18474  IP: 192.*.*.*

教えてください。
16進数値で21を10進数の33に変換する関数ってあるのですか。(StrToIntとかIntToHexのような.....)

編集 削除
a  2005-11-06 13:01:20  No: 18475  IP: 192.*.*.*

StrToIntで  $つけたらいい。

showmessage(IntToStr(StrToInt('$ff')))


N進数→X進数  変換は
原理は簡単だから、
自分でfunction作るのもいいかもしれない。
5分もあればできるからね。

編集 削除
a  2005-11-06 13:07:02  No: 18476  IP: 192.*.*.*

uses StrUtils;

procedure TForm1.Button1Click(Sender: TObject);
 var s:string;
begin
  s :='10';
  s := ifthen(leftStr(s, 1)<>'$','$'+s,s);
  showmessage(IntToStr(StrToInt(s)))
end;

編集 削除
Msun  2005-11-06 14:44:16  No: 18477  IP: 192.*.*.*

勘違いしていました。Edit1.Textへ「21」とキー入力、StrToIntでバッファに取込むと十進数表記の#21となりますが、十進表記で#33となるようにしたいのですが.....

編集 削除
 2005-11-06 14:56:43  No: 18478  IP: 192.*.*.*

上にもかいてるように
$つけて StrToIntに  いれればいいだけだと思いますけど

編集 削除
 2005-11-06 14:59:51  No: 18479  IP: 192.*.*.*

ひょっとして$の意味がわからないのかな?

delphiでの
16進数の表記は

$数字です。

10進数は  そのまま  数字です。

なので  StrToInt('$'+Edit1.Text)
で16進数から10進数に変換されます。

編集 削除
Msun  2005-11-06 15:54:51  No: 18480  IP: 192.*.*.*

a,'あ'さんありがとうございました。
'21'と入力してアドレスアドレススイッチ21の端末機が、
'38'と入力すればそのアドレスの端末機が
応答するようになりました。アセンブラーでは簡単なことですが、Delphi初心者で苦労しています。又、投稿しますのでそのときもよろしくおねがいします。ありがとうございました。

編集 削除
インライン  2005-11-06 19:15:41  No: 18481  IP: 192.*.*.*

Delphiでもインラインアセンブリは使えるがな。

編集 削除