function HexToDec(Hex:string):integer;
var i,len,rs1,rs,j:integer;
begin
rs:=0;
len:=length(Hex);
for i:=1 to len do//每重循环计算一位,从高位到低位
begin
rs1:=1;
for j:=1 to len-i do
rs1:= rs1*16;//计算其次方
case Hex[i] of
'0'..'9':rs:=rs+strtoint(Hex[i])*rs1;
'a'..'f':rs:=rs+(ord(Hex[i])-ord('a')+10)*rs1;
else
result:=-1;
exit;
end;
end;
result:=rs;
end;
var i,len,rs1,rs,j:integer;
begin
rs:=0;
len:=length(Hex);
for i:=1 to len do//每重循环计算一位,从高位到低位
begin
rs1:=1;
for j:=1 to len-i do
rs1:= rs1*16;//计算其次方
case Hex[i] of
'0'..'9':rs:=rs+strtoint(Hex[i])*rs1;
'a'..'f':rs:=rs+(ord(Hex[i])-ord('a')+10)*rs1;
else
result:=-1;
exit;
end;
end;
result:=rs;
end;
i:integer;
i:=strtoint('$aa'); 如果原先有一个16进制,那里面可以写('$'+值),记得要字符型
或i:=$aa;10=>16
inttohex(整型值,显示的位数)
例inttohex(100,2)
var i,len,rs1,rs,j:integer;
begin
rs:=0;
len:=length(Hex);
for i:=1 to len do//每重循环计算一位,从高位到低位
begin
case Hex[i] of
'0'..'9':rs:=rs*16+ord(hex[i]);
'a'..'f':rs:=rs*16+ord(hex[i])-ord('a')+10;
'A'..'F':rs:=rs*16+ord(hex[i])-ord('A')+10;
else
result:=-1;
exit;
end;
end;
result:=rs;
end;注意INTEGER是否会溢出? 可以试试HEXTOBIN函数
溢出我知道注意的了~