ビット演算で符号付き変数と符号なし変数に違いはありますか?
たとえば、符号なしの数値を扱う場合:
AND 00000111, 00001101
は 00000101 になります。
しかし、符号付きの数値を扱うとどうなるでしょうか?
ビット演算で符号付き変数と符号なし変数に違いはありますか?
たとえば、符号なしの数値を扱う場合:
AND 00000111, 00001101
は 00000101 になります。
しかし、符号付きの数値を扱うとどうなるでしょうか?
2 の補数が符号付き数値に使用されると仮定すると、符号付きを気にする演算 (つまり、ビット文字列の符号付きと符号なしの解釈では異なる) は次のようになります。
署名が関係ない操作は次のとおりです。
-x
手段~x + 1
)~x
意味-x - 1
)符号なしおよび符号付きの数値は、ビット文字列の解釈です。演算子にはそのAND
概念がなく、単一のビットで動作します。結果はどの方法でも同じになります。