2

ビット演算で符号付き変数と符号なし変数に違いはありますか?
たとえば、符号なしの数値を扱う場合:
AND 00000111, 00001101
は 00000101 になります。

しかし、符号付きの数値を扱うとどうなるでしょうか?

4

2 に答える 2

12

2 の補数が符号付き数値に使用されると仮定すると、符号付きを気にする演算 (つまり、ビット文字列の符号付きと符号なしの解釈では異なる) は次のようになります。

  • 分割
  • モジュロ
  • 右シフト
  • 比較 (等式を除く)
  • 倍幅乗算 (アセンブリ以外ではまれ)

署名が関係ない操作は次のとおりです。

  • 添加
  • 引き算
  • 否定(-x手段~x + 1
  • ビット単位と
  • ビット単位または
  • ビットごとの xor
  • ビット単位ではない (~x意味-x - 1)
  • 左方移動
  • 乗算
  • 比較 (等価のみ)
于 2012-11-05T09:34:45.040 に答える
1

符号なしおよび符号付きの数値は、ビット文字列の解釈です。演算子にはそのAND概念がなく、単一のビットで動作します。結果はどの方法でも同じになります。

于 2012-11-04T23:59:12.917 に答える