C#・VBでは言語組み込みのビットごとの演算として、以下のビット演算子が用意されています。 整数型に対して使用することで、ビットごとの演算を行うことができます。 &=などのように、ビット演算子に=を後置できる演算子では、代入先を左オペランド(左項)とする複合代入演算子となります。

ビット演算子
ビット演算 演算子
C# VB
論理否定(NOT)・1の補数 ~ Not
論理積(AND) &, &= And
論理和(OR) |, |= Or
排他的論理和(XOR) ^, ^= Xor

VBにおけるビット演算子は、Charを除く各整数型に対して使用できます。 演算の結果は、左右のオペランド(項)が同じ型の場合はその型、異なる型の場合はより大きい型の方に拡大変換されます。

NOT・AND・OR・XORの各演算子を使ってビット演算を行う
Imports System

Module Sample
  Sub Main()
    Dim x As Integer = &H_55AA_00FF
    Dim y As Integer = &H_5A5A_0F0F

    Dim not_x As Integer   = Not x   ' NOT(論理否定)
    Dim x_or_y As Integer  = x Or y  ' OR(論理和)
    Dim x_and_y As Integer = x And y ' AND(論理積)
    Dim x_xor_y As Integer = x Xor y ' XOR(排他的論理和)

    Console.WriteLine("Not {0} = {1}", x.ToBinary(), not_x.ToBinary())
    Console.WriteLine("{0}  Or {1} = {2}", x.ToBinary(), y.ToBinary(), x_or_y.ToBinary())
    Console.WriteLine("{0} And {1} = {2}", x.ToBinary(), y.ToBinary(), x_and_y.ToBinary())
    Console.WriteLine("{0} Xor {1} = {2}", x.ToBinary(), y.ToBinary(), x_xor_y.ToBinary())
  End Sub

#Region "数値を二進数表記の文字列化するためのメソッド"
  <System.Runtime.CompilerServices.Extension> _
  Function ToBinary(ByVal number As Integer) As String
    Return "&B_" + Convert.ToString(number, 2).PadLeft(8 * Len(number), "0"c)
  End Function
#End Region
End Module
実行結果
Not &B_01010101101010100000000011111111 = &B_10101010010101011111111100000000
&B_01010101101010100000000011111111  Or &B_01011010010110100000111100001111 = &B_01011111111110100000111111111111
&B_01010101101010100000000011111111 And &B_01011010010110100000111100001111 = &B_01010000000010100000000000001111
&B_01010101101010100000000011111111 Xor &B_01011010010110100000111100001111 = &B_00001111111100000000111111110000

上記の演算子をboolBooleanに対して使用すると、ビットごとの演算ではなく単一のブール値に対する演算を行う論理演算子となります。 ただしVBでは、ブール値に対して論理積・論理和を求める場合は通常AndAlsoOrElse演算子を使います 詳細は論理演算子 §.AndAlso演算子・OrElse演算子を参照してください。

ビット演算子はFlags属性を持つ列挙体に対しても使用することができます。 (列挙体とフラグ)