并且能保证不同的字符串转换出来的数字是唯一的,比如将'aaaa'转换成一个数字?

解决方案 »

  1.   

    其实问题很简单,可能是我表达不清楚吧,意思就是有没有可能将一个字符串转换成一个唯一的整型数(除了取ASIC码);
    不同的字符串取出来的整型值不一样就可以了
      

  2.   

    function HashOf(const Key: string): Cardinal;
    var
      I: Integer;
    begin
      Result := 0;
      for I := 1 to Length(Key) do
        Result := ((Result shl 2) or (Result shr (SizeOf(Result) * 8 - 2))) xor
          Ord(Key[I]);
    end;
      

  3.   

    如果是 0-9 a-z ,可以用36进制来表示
    ----------------
    如 aaaa= 11*36*36*36+11*36*36+11*36+11=527879
    如果字符串太 这个数就会很大