[トップ]C 001-C言語-ビット演算アプリケーションセット
1529 ワード
ビット演算の応用をいくつか収録しています.
--------------------------------------------------------------------------------
他の人が収録しているビット演算の応用:
http://blog.csdn.net/superdullwolf/article/details/4649080
--------------------------------------------------------------------------------
(1).2つの変数/メモリの互換性を実現するために使用します.
(2)ビットで逆を取る:~x=(-x)-1
[ipython環境] [VSL 2012環境]
例えば、8ビットモードでは、~2の計算過程は以下の通りです.
この結果をメモリから読み出して使うと、0 b 11111101と読みます.
最高位は1、説明はマイナスで、残りの7桁は補数で元のコードに変換する方式で計算します.
--------------------------------------------------------------------------------
他の人が収録しているビット演算の応用:
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
[ipython環境] [VSL 2012環境]
例えば、8ビットモードでは、~2の計算過程は以下の通りです.
2 、 0b00000010
~2 = ~ 0b00000010
= 0b11111101
この結果は他のメモリに保存される.この結果をメモリから読み出して使うと、0 b 11111101と読みます.
最高位は1、説明はマイナスで、残りの7桁は補数で元のコードに変換する方式で計算します.
:0b11111101 = 0xfd
:0b10000010
:0b10000011
取得した原コードは-3、つまり~2=-3です.