整数からビットまたはビットフィールドを抽出する
変数エクスプローラにおいてシグナル値の個々のビットから演算シグナルを作成する方法については、シグナル内のビットや配列内の要素を抽出するを参照してください。
以下の操作を実行できます。
- 整数を BIT 回だけ右へシフトして、目的のビットがビット0の位置になるようにします。
-
その値を以下のように1でマスクする(つまり値1とのANDをとる)ことにより、目的のビットの値のみが保持され、他のビットはすべて0になります。
singleBit = (inputsignal >> BIT)& 1
- 整数を LEAST_SIGNIFICANT_BIT 回だけ右へシフトして、ビットフィールドの最下位ビットがビット0の位置になるようにします。
-
その値を、以下のように NUMBER_OF_BITS から求めた値でマスクすることにより、目的のビットフィールドの値のみが保持され、他のビットはすべて0になります。
bitfield = (inputsignal >> LEAST_SIGNIFICANT_BIT) & ~(~0 << NUMBER_OF_BITS)
参照