Math 校验和的十六进制计算
我不明白这个结果怎么会是零。这是给我的一个验证消息校验和的示例Math 校验和的十六进制计算,math,hex,Math,Hex,我不明白这个结果怎么会是零。这是给我的一个验证消息校验和的示例 ED(12+01+ED=0) 这个结果怎么可能是零 “1201是信息”ED是校验和,我的问题是,如何确定校验和 谢谢你的帮助 致以最良好的祝愿, FR 这个结果怎么可能是零? 校验和大概由一个字节表示 一个字节可以存储256个不同的值,因此计算可能在模块256中完成 由于0x12+0x01+0xED=256,结果变为0 如何确定校验和? 校验和是特定的字节值B,它使消息+B中的字节之和=0(模256) 因此,正如@LanceH在评
ED(12+01+ED=0)
这个结果怎么可能是零
“1201是信息”ED是校验和,我的问题是,如何确定校验和
谢谢你的帮助
致以最良好的祝愿,
FR
这个结果怎么可能是零?
校验和大概由一个字节表示
一个字节可以存储256个不同的值,因此计算可能在模块256中完成
由于0x12+0x01+0xED=256,结果变为0
如何确定校验和?
校验和是特定的字节值B
,它使消息+B
中的字节之和=0(模256)
因此,正如@LanceH在评论中所说的,要计算校验和B
,您
M
)M'=M%256
B
计算为256-M'
B
,它使消息+B
中的字节之和=0(模256)
因此,正如@LanceH在评论中所说的,要计算校验和B
,您
M
)M'=M%256
B
计算为256-M'
我不确定您的校验和详细信息,但在base-16算术(以及base-10)中:
如果您的校验和为模256(16^2),则只保留最后2个基数为16的数字,因此您有
00
我不确定校验和的详细信息,但使用基数为16的算术(以及基数为10的算术):
如果你的校验和是模256(16^2),你只保留最后2个基16位,所以你有
00
很明显,当你加上12+01+ED时,结果溢出1个字节,实际上是十六进制数100。因此,如果只取0x0100的最后一个字节。很明显,当你把12+01+ED加起来时,结果溢出了1个字节,实际上是十六进制数100。因此,如果只取0x0100的最后一个字节。你得到0。来详细说明一下。将消息的字节相加。取256的和。从256中减去这个数字,这就是你的校验和。将消息的字节相加。取256的和。从256中减去这个数字,这就是你的校验和。
base-16 base-10
-----------------------
12 18
01 1
+ ED 237
------------------------
100 256