シフト演算子を理解しようとしていますが、あまり得られませんでした。以下のコードを実行しようとしたとき
System.out.println(Integer.toBinaryString(2 << 11));
System.out.println(Integer.toBinaryString(2 << 22));
System.out.println(Integer.toBinaryString(2 << 33));
System.out.println(Integer.toBinaryString(2 << 44));
System.out.println(Integer.toBinaryString(2 << 55));
私は以下を取得します
1000000000000
100000000000000000000000
100
10000000000000
1000000000000000000000000
誰か説明してくれませんか?