ホームページ  >  記事  >  バックエンド開発  >  C言語での~の使用法

C言語での~の使用法

下次还敢
下次还敢オリジナル
2024-05-02 18:24:161073ブラウズ

C 言語の ~ 演算子は、2 進数のビットごとの反転、つまり 0 が 1 になり、1 が 0 になるために使用されます。具体的なアプリケーションには、ビット マスクの否定、バイナリ ビットの検出、1 の補数コードの作成、1 の補数コードの生成などがあります。

C言語での~の使用法

#C 言語における ~ 演算子の使用法

~ 演算子の役割

~演算子は、C言語のビット単位の否定演算子です。 2 進数の各ビットを反転します。つまり、0 は 1 になり、1 は 0 になります。

構文

<code>~expression</code>
ここで、式には任意の整数型のデータを指定できます。

演算結果

~演算子の演算結果は、expression と同じ型の整数であり、そのバイナリ表現のすべてのビットが反転されます。

アプリケーション シナリオ

~演算子は主に C 言語の次のシナリオで使用されます:

  • リバース ビット マスク :ビットマスクを反転すると、元のビットマスクの反対のマスクが生成されます。例: ~0x0F は 0xF0 として生成されます。
  • バイナリ ビットの検出: 数値に対して ~ 演算を実行し、別の数値とビットごとの AND 演算を行うことで、数値の特定のバイナリ ビットが 1 であるかどうかを確認できます。例: x & ~0x08 は、x の 3 番目のビットが 0 であるかどうかを確認します。
  • 1 の補数コードを作成する: 負の数の場合、~ 演算子は 1 の補数コードを生成できます。例: ~(-5) は 4 を生成します。
  • 1 の補数を生成する: 負の数の場合、~ 演算子はその補数を生成できます。例: ~(-5) は 3 として生成されます。

<code class="c">#include <stdio.h>

int main() {
    int x = 0x12;

    printf("~x = %x\n", ~x);   // 输出: 0xED
    printf("~x & 0x08 = %x\n", ~x & 0x08);  // 输出: 0x00 (检查 x 的第3位是否为0)

    return 0;
}</code>

注:

~ 演算子は、ビット単位の AND (& ) およびビット単位の演算子よりも優先されます。 OR (|) 演算子。

以上がC言語での~の使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。