首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLite WAL中的校验和算法是什么

SQLite WAL中的校验和算法是什么
EN

Stack Overflow用户
提问于 2016-07-04 17:03:38
回答 1查看 307关注 0票数 0

我想知道在SQLite模式下的校验和算法,我已经检查了文档文件,但它是这样显示的(此图像是在sqlite文档文件https://www.sqlite.org/fileformat2.html#section_4_1中捕获的)

我不明白“帧头的最后8个字节中的校验和值与WAL头的前24个字节和前8个字节连续计算的校验和以及当前帧之前(包括当前帧)的所有帧的内容完全匹配”的含义。

我想更清楚地了解。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-07-04 17:10:07

next section of the documentation说:

校验和算法

校验和是通过将输入解释为偶数个无符号32位整数来计算的:x(0)x(N)。如果WAL报头的前4个字节中的幻数是0x377f0683,则32位整数是大端的;如果幻数是0x377f0682,则32位整数是小端的。无论使用哪种字节顺序来计算校验和,校验和值始终以big-endian格式存储在帧头中。

校验和算法仅适用于长度为8字节的倍数的内容。换句话说,如果输入是从x(0)x(N),那么N必须是奇数。校验和算法如下:

对于i从0到n-1,s0 = s1 =0第2步: s0 += x(i) + s1;s1 += x(i+1) + s0;and for # s0和s1

输出s0s1都是按相反顺序使用斐波那契权重的加权校验和。(最大的斐波那契权重出现在求和序列的第一个元素上。)s1值跨越序列的所有32位整数项,而s0省略最后一项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38180699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档