論理値およびビット単位の否定演算子

C、C ++、Java、およびPythonを含むほとんどの言語は、FalseまたはTrueに設定できるブール型を提供します。 ブール値に論理否定(または!)演算子を使用する以下のプログラムを検討してください。

Python

🐶Pythonコードの例を示すで

# A Python program that uses Logical Not or ! on boolean
a = not True
b = not False
print a
print b
# Output: False
#         True

🐶動画で動作確認してみよか?

動画で確認

//論理を使用するC#プログラム //違います!ブール値 システムを使用します。 クラスGFG { public static void Main() { bool a = true、b = false。 Console.WriteLine(!a); Console.WriteLine(!b); } }

上記のプログラムの出力は予想どおりですが、以前にBitwise Not(または〜)演算子を使用したことがない場合、プログラムに続く出力は予想どおりにならない可能性があります。

🐶Pythonコードの例を示すで

# A Python program that uses Bitwise Not or ~ on boolean
a = True
b = False
print ~a
print ~b

🐶動画で動作確認してみよか?

動画で確認

理由:ビット単位のnot演算子〜は、数値の補数を返します。つまり、各1を0に、各0を1に切り替えます。ブール値TrueおよびFalseの値はそれぞれ1および0です。 ビット演算子ではない

Javaでは、〜演算子をブール値に適用することはできません。たとえば、次のプログラムはコンパイラエラーを生成します。

🐶Pythonコードの例を示すで

// A Java program that uses Bitwise Not or ~ on boolean
import java.io.*;

class GFG
{
    public static void main (String[] args)
    {
        boolean a = true, b = false;
        System.out.println(~a);
        System.out.println(~b);
    }
}

結論: 論理否定または!はブール値を意味し、ビット否定または〜は整数を意味します。 C / C ++やpythonなどの言語は、整数演算子が適用されたときにブール値から整数型への自動昇格を行います。しかし、Javaはそうしません。

🐶 🐍

Last Updated: 5/19/2019, 1:43:17 AM