-6

私はちょうどCを学んでいます。誰かが彼らが何のために使っているのか説明できますか?これらの演算子。実際の産業の場合..ありがとう。

お気に入り:

これらが必要なときは?:

~X 
n = n & 0177
x = x | 1211

教えてください。

4

1 に答える 1

1

これは基本的なことであり、多くの潜在的なアプリケーションがありますが、特定の産業例を次に示します。

デバイス間で一連のコマンドおよび/またはステータス情報を送信しているとします。帯域幅の浪費を避けるために (特に、工業用デバイスでまだ使用されている古い 9 ピン シリアル接続などの遅いタイプの接続を使用している場合)、データを「パック」および「アンパック」することをお勧めします。2 ステート信号の場合、これは各バイトが最大 8 つの独立したステータスを保持できることを意味します。ビット 6 のステータスを取得するには、次のようにします。

status = (dataByte & 0x40) >> 6;

上記の行で、0x40 は、ビット 6 を除くすべてのビットがゼロになるビットマスクです。6 だけ右にシフトすると、結果の値 (0x40 または 0x00) が 1 または 0 に変換されます。

標準的な関連例については、この短いセクションをご覧ください: C でのビット操作

于 2013-01-07T02:33:37.307 に答える