怎么把16进制转换为10进制(100分)

  • 主题发起人 主题发起人 guoyunzhi
  • 开始时间 开始时间
G

guoyunzhi

Unregistered / Unconfirmed
GUEST, unregistred user!
在delphi中有10进制整型转换为16进制函数,就是没有反过来的函数。请问高手。怎么进行
16--->10.谢了。
 
function HexToInt(str: String): integer;
var
i:integer;
s:string;
ex:integer;
Vt:array of byte;
begin
s:=Trim(str);
setlength(vt,length(s));
for i:=1 to length(s) do
begin
if ord(S)>$40 then
vt[i-1]:=ord(S)-$37
else
vt[i-1]:=ord(S)-$30;
end;
ex:=1;
Result:=0;
for i:=high(vt) downto 0 do
begin
Result:=Result+vt*ex;
ex:=ex*16;
end;
end;
 
十六制转十进制:
StrToInt('$0A');
在字符串前加'$'或'0x'
 
还要加一句:s:=Uppercase(str);
 
(1)方法1
Function HexToDec(const Value :Integer ) : string;
var
s : string;
begin
s := '$' + IntToStr(Value);
Result := InToStr(StrToInt(s));
end;

(2)方法2
Funtion HexToDec(const Value :Integer) : string;
CONST HEX : ARRAY['A'..'F'] OF INTEGER =
(10,11,12,13,14,15);
VAR
str : String;
In : Integer;
i : integer;
BEGIN
Str := UpperCase(IntToStr(Value));
Int := 0;
FOR i := 1 TO Length(str) DO
IF str < 'A' THEN
Int := Int * 16 + ORD(str) - 48
ELSE
Int := Int * 16 + HEX[str];

Result := IntToStr(Int);
end;
 
谢了。哥们。
 
有这么麻烦吗?二者都是整数型的,不用转换就可以直接用吧
var
a,b:integer;
begin
a:=$faaf;
b:=a;
showmessage(inttostr(b));//结果显示为64175,
end;
 
后退
顶部