私はちょうどCを学んでいます。誰かが彼らが何のために使っているのか説明できますか?これらの演算子。実際の産業の場合..ありがとう。
お気に入り:
これらが必要なときは?:
~X
n = n & 0177
x = x | 1211
教えてください。
私はちょうどCを学んでいます。誰かが彼らが何のために使っているのか説明できますか?これらの演算子。実際の産業の場合..ありがとう。
お気に入り:
これらが必要なときは?:
~X
n = n & 0177
x = x | 1211
教えてください。
これは基本的なことであり、多くの潜在的なアプリケーションがありますが、特定の産業例を次に示します。
デバイス間で一連のコマンドおよび/またはステータス情報を送信しているとします。帯域幅の浪費を避けるために (特に、工業用デバイスでまだ使用されている古い 9 ピン シリアル接続などの遅いタイプの接続を使用している場合)、データを「パック」および「アンパック」することをお勧めします。2 ステート信号の場合、これは各バイトが最大 8 つの独立したステータスを保持できることを意味します。ビット 6 のステータスを取得するには、次のようにします。
status = (dataByte & 0x40) >> 6;
上記の行で、0x40 は、ビット 6 を除くすべてのビットがゼロになるビットマスクです。6 だけ右にシフトすると、結果の値 (0x40 または 0x00) が 1 または 0 に変換されます。
標準的な関連例については、この短いセクションをご覧ください: C でのビット操作