Share via


& 演算子 (C# リファレンス)

& 演算子は、単項演算子または二項演算子として機能します。

解説

単項 & 演算子では、オペランドのアドレスが返されます (unsafeコンテキストが必要)。

二項 & 演算子は、整数型と bool に対してあらかじめ定義されています。整数型の場合、& はオペランドのビットごとの論理 AND を計算します。bool オペランドの場合は、オペランドの論理 AND が計算されます。つまり、両方のオペランドが true の場合だけ結果が true になります。

& 演算子は、1 番目の演算子の値に関係なく、両方の演算子を評価します。次に例を示します。

int i = 0;
if (false & ++i == 1)
{
    // i is incremented, but the conditional
    // expression evaluates to false, so
    // this block does not execute.
}

二項 & 演算子はユーザー定義型でオーバーロードできます。詳細については、「operator (C# リファレンス)」を参照してください。通常、整数型に対する演算は、列挙に対して適用されます。二項演算子をオーバーロードすると、対応する代入演算子がある場合には、この演算子も暗黙でオーバーロードされます。

使用例

class BitwiseAnd
{
    static void Main()
    {
        // The following two statements perform logical ANDs.
        Console.WriteLine(true & false); 
        Console.WriteLine(true & true);  

        // The following line performs a bitwise AND of F8 (1111 1000) and
        // 3F (0011 1111).
        //    1111 1000
        //    0011 1111
        //    ---------
        //    0011 1000 or 38
        Console.WriteLine("0x{0:x}", 0xf8 & 0x3f); 
    }
}
// Output:
// False
// True
// 0x38

参照

関連項目

C# 演算子

概念

C# プログラミング ガイド

その他の技術情報

C# リファレンス