您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
32 行
959 B
32 行
959 B
namespace Unity.Entities
|
|
{
|
|
internal static unsafe class HashUtility
|
|
{
|
|
public static uint Fletcher32(ushort* data, int count)
|
|
{
|
|
unchecked
|
|
{
|
|
uint sum1 = 0xff;
|
|
uint sum2 = 0xff;
|
|
while (count > 0)
|
|
{
|
|
var batchCount = count < 359 ? count : 359;
|
|
for (var i = 0; i < batchCount; ++i)
|
|
{
|
|
sum1 += data[i];
|
|
sum2 += sum1;
|
|
}
|
|
|
|
sum1 = (sum1 & 0xffff) + (sum1 >> 16);
|
|
sum2 = (sum2 & 0xffff) + (sum2 >> 16);
|
|
count -= batchCount;
|
|
data += batchCount;
|
|
}
|
|
|
|
sum1 = (sum1 & 0xffff) | (sum1 >> 16);
|
|
sum2 = (sum2 & 0xffff) | (sum2 >> 16);
|
|
return (sum2 << 16) | sum1;
|
|
}
|
|
}
|
|
}
|
|
}
|