如何将10位16进制数据转换为10位10进制数据,我用下面这个进行转换,
s3 := RightStr('0000000000' + IntToStr(StrToInt('$' + Copy(ANum, 2, 8))), 10);
但10位数据已经超出了integer的范围,请问各位大侠如何解决.
10位16进制数据如下,转换为10进制,取后10位数据就可以了
1700B7EA7D
1700B7EBFA
1700B7E22E
1700B7E2F0
s3 := RightStr('0000000000' + IntToStr(StrToInt('$' + Copy(ANum, 2, 8))), 10);
但10位数据已经超出了integer的范围,请问各位大侠如何解决.
10位16进制数据如下,转换为10进制,取后10位数据就可以了
1700B7EA7D
1700B7EBFA
1700B7E22E
1700B7E2F0
解决方案 »
- Delphi报表打印问题,急!!救命啊
- 假如clientdataset中有很多记录,我想对其中的一部分数据进行修改,如有字段:单位 日期,我要将大于日期1和小于日期2的单位字段全部更改
- var buf:array[0..1023] of char; callinfo:TLineCallInfo absolute buf;请问这是什么意思?
- FR连打,每打一页都会先走一张白纸,然后再打印。怎么解决这个问题!
- 如何解决这个删除的问题,高分求教
- 高兴放分!!200
- delphi 7,webservice apache2.x的一个问题??
- 使用radiogroup组件怎么获取被选中的一项的内容?急!!!
- 这个问题确实比较难!
- 高手啊,神啊,救救我吧!!!
- 没分了,在问个问题,如何写这样的查询?
- 散分,和昨天理由一样
var
I: Int64;
Str, Str2: string;
begin
Str := '1700B7EA7D';
I := StrtoInt64('$'+Str);
Str2 := RightStr(Format('%.10d',[I]),10);;
Showmessage(Str2);
end;
I: Int64;
j:integer;
Str, Str2: string;
begin
Str := '1700B7EA7D';
if length(str)>0 then
for j:=1 to length(str) do
begin
if (str[j]>64) and (str[j]>71) then
i:=i+ord(str[j])-54;
if (str[j]>47) and (str[j]>59) then
i:=i+ord(str[j])-48;
i shl 4;
end;
i shr 4;
for j:=0 to 9 do
begin
str2:=chr(48+(i mod 10))+str2;
i:=i div 10;
end;
Showmessage(Str2);
end;
RightStr('0000000000' + IntToStr(StrToInt64('$' + Copy(Edit1.Text, 2, 8))), 10);
var
I: Int64;
j:integer;
Str, Str2: string;
begin
Str := '1700B7EA7D';
if length(str)>0 then
for j:=1 to length(str) do
begin
if (str[j]>64) and (str[j]>71) then
i:=i+ord(str[j])-54;
if (str[j]>47) and (str[j]>59) then
i:=i+ord(str[j])-48;
i:=i shl 4;
end;
i:=i shr 4;
for j:=0 to 9 do
begin
str2:=chr(48+(i mod 10))+str2;
i:=i div 10;
end;
Showmessage(Str2);
end;