高品質Cプログラミング09-ビット操作

2378 ワード

1.ビット演算は通常符号数のない演算である
2.基本ビットオペレータ
アイコン
さぎょう
&
ビットと
|
ビットまたは
~
ビット反転
^
位異或
<<
左に移動
>>
右に移動
3.基本ビットオペレータ使用帰納
(1)int型変数aが奇数か偶数かを判定する
a & 1 == -0     //  
a & 1 == -1     //  

(2)int型変数aの第kビットをとる
a >> k & 1;

(3)int型変数aの第kビットを0にクリアする
a = a & ~(1 << k);

(4)int型変数aの第k位置1を
a = a | (1 << k);

(5)int型変数aの第kビットを反転
a = a ^ (1 << k);

(6)int型変数aサイクル左シフトk
a = a << k | a >> 32 - k;

(7)int型変数aサイクル右シフトk
a = a >> k | a << 32 - k;

4.複合表現を扱う二つのガイドライン
  • 評価順序
  • 優先度
  • 結合性
  • (1)疑念がある場合は、式の上でプログラムロジックの要求に従って( )強制オペランドの組み合わせを使用する(2)オペランドの値を変更する場合は、同じ文の他の場所でオペランドを使用しないでください.変更した値を使用する必要がある場合は、テーブルを2つの独立した文に分割し、1つの文でオペランドの値を変更し、別の文で使用します.