请问如果将十六进制的数转换成字符串
例如:$28-----'28'
例如:$28-----'28'
解决方案 »
- 为什么用delphi做的浏览器,在打开一个有activex的网页时,无法显示提示信息,而ie却可以
- 请教:如何模拟点击一个窗口的任意一个位置?这个窗口是外部程序的一个弹出对话框。
- ADOQuery可以和data set provider连接嘛?如果可以的话怎么连接啊?
- 为何动态创建FORM时,屏幕会闪?
- 怎样在form中用程序判断表(paradox)是否纯在?
- 菜鸟问题
- 如何能退出循环?while not n.eof do begin ....end
- 状态栏怎么样显示文本?
- why,
- 春节恭贺贴(一)。。。。。。。。。。。
- 把若干图片紧挨着排成一行,如何才能使它们在屏幕上横向滚动,反复循环出现,请大家帮帮忙,谢谢
- 如何用delphi提取文件信息
s: String;
begin
s := IntToHex($28, 0);
showmessage(s);
end;
先转为数 再转为 十六进制
1.$28 ----将字符串第位去掉----> 28 可行吧:)
2.如下
......
var
rw :string;
implementation{$R *.dfm}
.....
//转换
function TForm1.hextostr(s1: string): string;
var
s2,s22,s3,ss:string;
begin
ss:= IntToStr(strtoint(s1) mod 16);
if strtoint(s1) >=16 then
begin
s2:= IntToStr(strtoint(s1) div 16);
s3:= IntToStr(strtoint(s1) mod 16);
case strtoint(s3) of
10: s3:='a';
11: s3:='b';
12: s3:='c';
13: s3:='d';
14: s3:='e';
15: s3:='f';
else
s3:=s3;
end;
Result := s2;
rw:= s3+rw;
if strtoint(s2)<16 then
begin
case strtoint(s2) of
10: s22:='a';
11: s22:='b';
12: s22:='c';
13: s22:='d';
14: s22:='e';
15: s22:='f';
end;
rw:=s22+rw;
end;
hextostr(s2);
end
else
begin
if strtoint(ss)<16 then
begin
case strtoint(ss) of
10: ss:='a';
11: ss:='b';
12: ss:='c';
13: ss:='d';
14: ss:='e';
15: ss:='f';
end;
end;
rw:= ss+rw;
end;
Result := rw;
end;
//测试结果,当类似$999或$9aa没问题,当类似$ab23这种以开头的结果有点问题,前面多一位^_^!,你自己改一下吧procedure TForm1.SpeedButton1Click(Sender: TObject);
var
begin
Label1.Caption := hextostr(IntToStr(strtoint('$28')));
end;