3

負の値を Redis ビットセットに格納しようとしていますが、操作は次のエラーで失敗します:

ビット オフセットが整数ではないか、範囲外です

Redis ビットセットに負の数を格納することがサポートされていない理由を説明してください。

4

1 に答える 1

2

負の数を使用してビットセット内の位置を参照する人はいないためです。ビット配列内のビットセットであるため、そのインデックスは正の整数です。

負の数がある場合(たとえば、ハッシュ関数からのもの)、最初にそれを符号なし整数に変換する必要があります。ほとんどの言語で行うのは簡単です。

Javaの特定のケースでは、longの下位32ビットのunsigned値にsigned intをキャストするには、0xffffffffLとANDする必要があります。次のリンクを参照してください。

符号付き整数を符号なしlongに変換する最良の方法は?

于 2012-08-10T15:13:32.527 に答える