如何把16进制数转换成10进制数,
比如16进制数:1E 02 00 0B 2B,
其中“00 0B”是我要的16进制数,2B是校验码,
如果把“00 0B”转换成10进制,再取出来?
着急!!!1
比如16进制数:1E 02 00 0B 2B,
其中“00 0B”是我要的16进制数,2B是校验码,
如果把“00 0B”转换成10进制,再取出来?
着急!!!1
解决方案 »
- delphi中messagebox 和showmessagepos的结合??求助
- GDI+保存图片时使用原路径为何不行?
- 如何控制一个程序的使用期限问题
- 为什么这些人总能发现 bug?
- Delph涅槃:充满期待的组合(DevCo+Adobe)
- 关于外部数据库引擎的问题
- 交叉表(Desision cub)做报表统计的时候的问题?百思不得其解,不知何故望高手指点
- 在线急等:如何将求和的SQL结果传出到DELPHI变量中?!!!!!
- 很简单的:怎样判断TREEVIEW控件的一个节点的父节点为空?(即最上层)
- 我有一个问题大家帮我UP一下
- 求检测图像中平行线(或直线)的代码
- 上次问的问题,揭贴早了没有解决。就是如何在delphi里实现公交车刷卡那种悦耳的声音?
StrToInt('0xFFFF');
都可以
fuction DecToBase(Decimal:Longint;const Base:byte):string;
const
Symbols:string[16]='0123456789ABCDEF';
var
scratch:string;
remainder:Byte;
begin
scratch:='';
repeat
//得到在Base进制下当前位的权值
remainder:=Decimal mod Base;
Scratch:=Symbols[remainder+1]+scratch;
//调整十进制大小
Decimal:=Decimal div Base;
until (Decimal=0);
Result:=scratch;
end;
begin
a[1] := StrToInt('$1E');
a[2] := StrToInt('$02');
a[3] := StrToInt('$00');
a[4] := StrToInt('$0B');
//你的校验码好像是累加和校验 如果是这样的话
a[5] := a[1] + a[2] + a[3] + a[4];
end;
begin
if ch in ['0'..'9'] then
result := ord(ch) - ord('0')
else if ch in ['A'..'Z'] then
result := ord(ch) - ord('A') + 10
else
assert(false);
end;function HexStrToInt(str: String): integer; //转换16进制字符串
var
i: integer;
len: integer;
begin
str := upperCase(str);
len := length(str);
for i := len downto 1 do
result := Trunc(power(16, len - i)) * chValue(str[i]);
end;function StrToInt2(str: String): integer; //转换
begin
str := Trim(str);
if (LastDelimiter('Hh', str) <> 0) and (LastDelimiter('Hh', str) <> Length(str)) then //非法格式
raise EConvertError.Create('格式不对')
else if LastDelimiter('Hh', str) = Length(str) then //Hex
result := HexStrToInt(Copy(str, 1, Length(str) -1))
else //Dec
result := StrToInt(str);
end;