チェックサムについて

投稿者: Anonymous

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

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

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

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

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

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

解決

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

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

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

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *