30994


チェックサムについてご質問です。

バイナリデータのチェックサムを作成しています。  
チェックサム専用の容れ物は8Byteです。

最初は1Byteずつ全てのデータを足して、それをチェックサムにしようと思いました。(16進数)

しかし、「マイナスしていった方が、2の補数になっていいよ」と言われました。

足していっても大丈夫だと思うのですが、、、  
マイナスしていった方が良いという考えが分かる方、  
その考えをご教授願いたいです。

初歩的な質問ですみませんが、よろしくお願いいたします。


CC BY-SA 3.0
2016-12-07T15:15:14.783
30991
2016-12-07T16:53:48.413
2016-12-07T16:38:37.417
3605
19213
question
アルゴリズム
チェックサムについて


おそらく、後でデータの検証をするときに、ほんのちょっとだけ簡単になるからでしょう。

例えばデータ転送後に、足していって作ったチェックサムでデータの検証をするときは、転送されてきたチェックサムを保存しておき、転送データから再計算したチェックサムと比較して、同じなら
OK になります。

一方、マイナスしていって作ったチェックサムの場合は、転送されたチェックサムにデータを足して込んでいき、最後に 0 になっていれば OK
ということになります。つまり、２の補数になっている == 足せば 0 になる、という性質を利用しているわけです。


CC BY-SA 3.0
2016-12-07T16:53:48.413
30994
2016-12-07T16:53:48.413
3605
30991
answer