我需要计算一个超过15字节的1字节校验和。我的第一个想法是使用类似crc8的东西,但问题是我必须使用一个真正有限的基本解释器,它只支持基本的算术操作(+-*/),而不支持按位的“xor”、“and”或“or”和“shift”操作。
所以我的问题是:有没有可能计算出一个有这些限制的合理的校验和?我认为计算总数是个糟糕的解决办法,但目前我想不出别的办法了。
最佳答案
LET a = 1
LET b = 0
FOR n = 1 to 15
LET a = a + c(n)
LET b = b + a
NEXT n
LET b = mod(b, 251)
然后使用
b
作为检查值与简单和相比,它的优点是不可交换字节的顺序很重要同时,一个由零组成的字符串不会给您零,检查值取决于有多少个零。