fixed (char* str = ((char*)s))
这句应该怎么改
还有
5^3=6
4^3=7
3^3=0
怎么计算出来的
internal static unsafe int GetStringHashCode(string s)
            {
                fixed (char* str = ((char*)s))
                {
                    char* chPtr = str;
                    int num = 0x15051505;
                    int num2 = num;
                    int* numPtr = (int*)chPtr;
                    for (int i = s.Length; i > 0; i -= 4)
                    {
                        num = (((num << 5) + num) + (num >> 0x1b)) ^ numPtr[0];
                        if (i <= 2)
                        {
                            break;
                        }
                        num2 = (((num2 << 5) + num2) + (num2 >> 0x1b)) ^ numPtr[1];
                        numPtr += 2;
                    }
                    return (num + (num2 * 0x5d588b65));
                } 
            }