也就是说,不同的字符串通过一个算法编程不同的整数,谢谢!

解决方案 »

  1.   

    to: 何智丹
        我没有那么多字符串,只是简单的一些to: 海天一色
        md5生成的是字符串吧,crc32是做效验的,能够生成唯一码吗?应该会有重复吧?
      

  2.   

    自己可以编一个啊!我就自己随便写了个密码生成的exe,我的思路是获得字符的ascii码,然后通过一定的方式加成,最后生成一个数字的ascii码,然后转化为数字就可以了。
      

  3.   

    散列算法。一个好的散列算法可以尽可能的避免重复但是绝对不能杜绝重复。其实用CRC是一种比较可行的算法,它不属于散列算法的行列不过用来做标识还是可行的,通过对字节的运算可以生成一个4字节的整数,它用在要求不高的系统中做标识足够了。MD5是一种常用的散列算法,它通常用于加密算法中的摘要生成。它运算出来的值做标识比CRC的好,不过MD5生成的是一个16个字节的数组相当于4个long,如果你的系统要求高的话可以用它来做标示生成算法。
      

  4.   

    自己做散列算法也是可行的,除了输入字节间的运算方法以外还有几个关键点需要掌握:
    1、用一些较大的质数与最后的结果进行异或运算(^)
    2、选用一个合适的桶。具体相关你可以看看hash方面的资料。
      

  5.   

    crc32会生成一个32位的值,这个值重复的可能性很小
      

  6.   

    得到他们得 unicode 码,后相加
      

  7.   

    //对于4位的字符串,可以简单地设计,一个汉字算两位!
    DWORD NumFromString(const CString str)
    {
        if( str.GetLength() > 4 )
            return 0;    DWORD dwNum = 0;
        for( int i=0; i<str.GetLength(); i++ )
        {
            UINT ch=(UINT)(str.GetAt(i));
            dwNum *= 256;
            dwNum += (DWORD)ch;
        }
    }
      

  8.   

    不好意思,最后少了个return dwNum;