我需要计算15个字节的1字节校验和。我的第一个想法是使用像crc8这样的东西,但问题是我必须使用一个非常有限的BASIC解释器,它只支持基本的算术运算(+ - * /)但没有按位" xor",&# 34;和"或"或"没有"转移"操作
所以我的问题是:是否有可能用这些限制来计算一个合理的校验和?我认为计算总和将是一个糟糕的解决方案,但我现在无法想到别的东西。
答案 0 :(得分:2)
如果你有截断整数除法,你可以定义mod(a,b)= a - (a / b)* b,这几乎是http://en.wikipedia.org/wiki/Adler-32所需的全部。
答案 1 :(得分:2)
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
作为检查值。这个简单总和的优点是它不是可交换的。字节的顺序很重要。此外,一串零不会给你零,检查值取决于多少个零。