0
typedef unsigned int  StatusCode;

StatusCode quality = 0;

#define PARTIALBIT 0x05

quality |= PARTIALBIT ;// I am setting a partial bit here

//...。

コードの他の部分では、パリティビットが設定されているかどうかを確認し、クリアする必要があります。Cでこれを達成するにはどうすればよいですか?

ありがとう!

4

3 に答える 3

4

これを試して:

if (quality & PARTIALBIT)
{
    // bit was set, do processing
    // ...
    // then clear the bit
    quality &= ~PARTIALBIT;
}

また、ビット5を設定する必要がある場合は、間違った方向に進んでいます。ビット5を設定する場合は、次を使用します。

#define PARTIALBIT (1 << 5)

代わりは。

于 2012-08-03T10:14:56.327 に答える
3

ビットxを設定する場合は、次のように記述します。

val |= 1<<x

ビットxをクリアしたい場合は、次のようにします。

val &= ~(1<<x)

ビットxを逆にしたい場合は、次のように記述します。

val ^= 1<<x
于 2012-08-03T10:33:35.257 に答える
0

代替方法-「unsignedintStatusCode」でビットフィールドユニオンを使用します。

typedef union{
  unsigned intStatus;
  unsigned bitStatus:sizeof(unsigned);
} S_statusCode;
于 2012-08-03T11:06:12.583 に答える