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

解決


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

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

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

StrToIntで  $つけたらいい。

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


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

編集    削除
a  2005-11-06 22: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 23:44:16  No: 18477  IP: [192.*.*.*]

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

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

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

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

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

delphiでの
16進数の表記は

$数字です。

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

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

編集    削除
Msun  2005-11-07 00:54:51  No: 18480  IP: [192.*.*.*]

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

編集    削除
インライン  2005-11-07 04:15:41  No: 18481  IP: [192.*.*.*]

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

編集    削除