VB.NETの場合はビット演算が簡単に使えます。
先ずSiftですが左Siftは<<、右Siftは>>です。
>10進7=2進0111これを左シフトすると2進1110=10進14は
Dim i As Integer = (7 << 1) 又は
Dim i As Integer = 7
i = i << 1 又は
i <<= 1
となります、2つシフトしたければ i<<2とします。
ある数のあるビットが立っているかいないか調べることをビットテストと言います。
ビットテストにはAnd演算子を使います。
これはテストしたいビットだけが立った数値とテストしたい数値のAndで実現します。
1100100 (10進 100)
And 0000100 (10進 4)
-------------------------
0000100
ANDの結果が0ならビットが立っていません。
コードは
Dim i As Integer = 100
Dim j As Integer = 2 '番目のビット
Dim k = i And 2 ^ j
If (i And 2 ^ j) > 0 Then
MessageBox.Show((j + 1).ToString + "番目のビットが立っています")
Else
MessageBox.Show((j + 1).ToString + "番目のビットが立っていません")
End If