の一部としてのハッシュ関数コードが次のことを行うことに気付きましたjava.util.Hashtable#get(K key)
: int index = (hash & 0x7FFFFFFF) % tab.length;
. このバイナリ「and」操作は、符号ビットをリセットするためだけのものですか? したがって、負のテーブル アクセスは避けてください。
更新: 彼らが 0xEFFFFFFF ではなく 0x7FFFFFFF で「and」しているという事実は、私を困惑させました。符号が 1 ビットではなく完全なバイトを必要とするのはなぜですか?