ファイルの内容を確認するためにチェックサム(CRC16 CCITT)を実装する必要があります。 チェックサムは、< <と>>演算子とネット上で利用可能な多くの例のおかげで、CまたはJavaで実装するのはむしろ簡単です。ビットシフトがない場合ビットシフト演算子
私のチェックサム計算はVBScriptで実装する必要があります。
この言語での私の経験はほとんどありませんが、私の理解では、VBScriptでビットシフトを行うためのものは何もありません。したがって、私はの乗算と2つの除算に頼っています。の負の値を除いては正常に動作します。
私はいくつかのテストを実行しましたが、VBScriptは16ビット整数を2の補数で処理すると信じています。
1:誰かが私にこれを確認できますか(VBScriptでは2の補数です)? MSDNのWebサイトから正確な情報が見つかりませんでした。
Q2:負数が2の補数でコード化されている場合、単純な数学演算でビットシフト(右と左)を行うことはできますか?
。
ありがとう、私は本当に '1'と '0'の配列またはVBScriptからいくつかのJava/Cアプリケーションを呼び出す整数として扱うようなkludgeを避けたいと思います。
EDITは、VBScriptで右シフトの私の実装の下に見つけ、助けてくれてありがとう:上記のコードについて
Function rightShift(value,bits)
Dim res
res = 65535 AND value
If value>=0 Then
res = res \ (2^bits)
Else If value=-1 Then
res = rightShift(res + 32768, bits - 1)
Else
res = rightShift(value \ 2 + 32768, bits - 1)
End If
End If
rightShift = res AND 65535
End Function
注:値は時々ので、私はマスクしていた16ビットを超えるましたオーバーフローを避けるために未使用のビット(AND 65535
)。
はあなたのコードを配っためにどうもありがとうございます! 32ビットを除いて全く同じものが必要でしたが、これはあなたのコードでは簡単でした。私はCRC32を実装しています。 :) –