程序使用java做後台服務,數據處理時使用了java的hashcode,Delphi程序也需要生成這個hashcode,為了一致,所以要在Delphi下實現和Java一樣的算法。
下面即Delphi版的hashCode:
function hashCode(val: string): Integer; var i: Integer; res: Extended; x: Integer; function RoundEx(x: Extended): Integer; begin Result := Trunc(x) + Trunc(Frac(x) * 2); end; begin res := 0; for i := 1 to Length(val) do begin res := res + Ord(val[i]) * Power(31, Length(val) - (i - 1) - 1); end; Result := RoundEx(res); end;