[トップ]C 001-C言語-ビット演算アプリケーションセット


ビット演算の応用をいくつか収録しています.
--------------------------------------------------------------------------------
他の人が収録しているビット演算の応用:
http://blog.csdn.net/superdullwolf/article/details/4649080
--------------------------------------------------------------------------------
(1).2つの変数/メモリの互換性を実現するために使用します.
void switch_value(uint32_t a, uint32_t b)
{
    a ^= b;
    b ^= a;
    a ^= b;
}
--------------------------------------------------------------------------------
(2)ビットで逆を取る:~x=(-x)-1
[置顶] C001-C语言-位运算应用集合_第1张图片[ipython環境]  [置顶] C001-C语言-位运算应用集合_第2张图片[VSL 2012環境]
例えば、8ビットモードでは、~2の計算過程は以下の通りです.
2   、     0b00000010
~2 = ~ 0b00000010
   =   0b11111101
この結果は他のメモリに保存される.
この結果をメモリから読み出して使うと、0 b 11111101と読みます.
最高位は1、説明はマイナスで、残りの7桁は補数で元のコードに変換する方式で計算します.
    :0b11111101 = 0xfd
  :0b10000010
  :0b10000011
取得した原コードは-3、つまり~2=-3です.