バックグラウンドでは、定数メモリに格納されている(それを修正することはできません)IPパケットのチェックサムを計算しようとしています。チェックサムを行う前に、私はパケットの既存のチェックサムを0にしようとしています。すべてのデータを一時バッファにコピーして0を格納するのではなく、パケット全体のチェックサムを行いたい結果からの既存のチェックサム。の1の補数0 - 0
これを行うには、私はhereという1つの補数の減算を探していました。私はこれを使用し、0から0を引く場合は残念ながら、私の代わりに予想さ0の0x1111を取得:
- 1の補数に変換0:[1111]
- 次に、我々は0を追加します。[1111] を
- なしオーバーフロービットに、私たちは...
をやっている私は0期待しているだろう - 0と0を - 私は何をしないのですか?
0の1の補数には、+0(0000)と-0(1111)の2つの表現があります。 –
補足は何を購入しますか? –
バッファ全体をコピーするのではなく、計算した新しいチェックサムを使用しないことを前提に、現在のチェックサムを保存して0に設定し、チェックサムを計算して元の値に戻します。 – clcto