typedef unsigned int StatusCode;
StatusCode quality = 0;
#define PARTIALBIT 0x05
quality |= PARTIALBIT ;// I am setting a partial bit here
//...。
コードの他の部分では、パリティビットが設定されているかどうかを確認し、クリアする必要があります。Cでこれを達成するにはどうすればよいですか?
ありがとう!
typedef unsigned int StatusCode;
StatusCode quality = 0;
#define PARTIALBIT 0x05
quality |= PARTIALBIT ;// I am setting a partial bit here
//...。
コードの他の部分では、パリティビットが設定されているかどうかを確認し、クリアする必要があります。Cでこれを達成するにはどうすればよいですか?
ありがとう!
これを試して:
if (quality & PARTIALBIT)
{
// bit was set, do processing
// ...
// then clear the bit
quality &= ~PARTIALBIT;
}
また、ビット5を設定する必要がある場合は、間違った方向に進んでいます。ビット5を設定する場合は、次を使用します。
#define PARTIALBIT (1 << 5)
代わりは。
ビットxを設定する場合は、次のように記述します。
val |= 1<<x
ビットxをクリアしたい場合は、次のようにします。
val &= ~(1<<x)
ビットxを逆にしたい場合は、次のように記述します。
val ^= 1<<x
代替方法-「unsignedintStatusCode」でビットフィールドユニオンを使用します。
typedef union{
unsigned intStatus;
unsigned bitStatus:sizeof(unsigned);
} S_statusCode;