几年没用delphi都忘差不多了,以下这段简单的取序列号的java代码,哪位能帮我用delphi翻译出来,多谢了!public class Licence {
public static long getSerialNum(String str) {
if (str == null) {
return 0;
}
byte[] bt = str.getBytes();
int leng = bt.length;
long sn = 0;
for (int i = 0; i < leng; i++) {
sn += bt[i] * getPowerNum(leng - i - 1);
}
return sn;
} public static long getPowerNum(int n) {
long num = 1;
for (int i = 0; i < n; i++) {
num *= 8.62;
}
return num;
} public static void main (String[] args) {
String school="school";//args[0];
String mac="00-E0-4C-50-00-50";//args[1];
String sn=String.valueOf(getSerialNum(school+mac));
System.out.println (sn);
}
}
public static long getSerialNum(String str) {
if (str == null) {
return 0;
}
byte[] bt = str.getBytes();
int leng = bt.length;
long sn = 0;
for (int i = 0; i < leng; i++) {
sn += bt[i] * getPowerNum(leng - i - 1);
}
return sn;
} public static long getPowerNum(int n) {
long num = 1;
for (int i = 0; i < n; i++) {
num *= 8.62;
}
return num;
} public static void main (String[] args) {
String school="school";//args[0];
String mac="00-E0-4C-50-00-50";//args[1];
String sn=String.valueOf(getSerialNum(school+mac));
System.out.println (sn);
}
}
var
i:integer;
num:double;
begin
num:=1;
for i:=0 to n-1 do
num:=num*8.62;
result:=trunc(num);
end;function GetSerialNum(str:string):int64;
var
bt:array of byte;
leng,sn,i:integer;
begin
sn:=0;
if str='' then
begin
result:=0;
exit;
end;
leng:=length(str);
setlength(bt,leng);
for i:=1 to leng do
bt[i-1]:=ord(str[i]);
for i:=0 to leng-1 do
sn:=sn+(bt[i]*getPowerNum(leng - i - 1));
result:=sn;
end;procedure TForm1.Button1Click(Sender: TObject);
var
school,mac,sn:string;
begin
school:='school';
mac:='00-E0-4C-50-00-50';
sn:=inttostr(getSerialNum(school+mac));
showmessage(sn);
end;
sn:=inttostr(getSerialNum(school+mac));
提示出错:Invalid floating point operation