我正在使用HxD检查.d2s文件,这使我可以查看文件的未编码字节。
文件大约有900多个字节。
第12到15字节是校验和。
计算校验和的算法如下:
sum = (sum << 1) + data[i];
这是我获得该公式的github页面。
https://github.com/krisives/d2s-format#checksum
许多其他网站报告这是此文件类型的正确公式,因此我相信这是正确的。但是我很难理解和实施它,因此我无法获得明智的结果。
<<
是向左的二进制移位,如果我执行(sum << 1)
,则是将当前的校验和(二进制)向左移位1个位置(或将十进制等效值乘以2)在我添加下一个字节之前。
但是我的文件中有900个字节。我得到一个巨大的数字(比能容纳4个字节或32位或2 ^ 32的数字更大),根据我的理解是正确的。所以我觉得我错了。
这是我尝试计算校验和的小提琴:
我只复制文件内容并将其粘贴到textarea中,校验和就会输出到页面和控制台。
这整个练习都是出于学习目的。