delphi中有直接把10进制转换成16进制的函数:
function IntToHex(Value: Integer; Digits: Integer): string; overload;
function IntToHex(Value: Int64; Digits: Integer): string; overload;
使用方法为:
procedure TForm1.Button1Click(Sender: TObject);
var
i,m: Integer;
begin
Label1.Caption := '';
for i := 1 to Length(Edit1.Text) do
begin
m := StrToInt(Edit1.Text[i]));
edit2 := IntToHex(StrToInt(Edit1.Text[i]),2)+ '';
edit3 := IntToHex(m,2);
end;
end;
然而,delphi中却没有把16进制直接转换成10进制的函数,将16进制转换成10进制需要自己定义函数,这是自己编写的一个,不当之处还请指出:
function HexToInt (str:string) : word;
var
i , value : word;
pos : word;
begin
value:=0;
pos:=length(str);
for i:=1 to pos do
begin
case str[i] of
'f','F':
value := value*16+15;
'e','E':
value := value*16+14;
'd','D':
value := value*16+13;
'c','C':
value := value*16+12;
'b','B':
value := value*16+11;
'a','A':
value := value*16+10;
'0'..'9':
value := value*16+ord(str[i])-ord('0');
else
result:=value;
exit;
end;
result:=value;
end;
end;