Image

расскажите пожалуйста

Как подобный кусок кода может давать такой вывод.

Кусок кода:
public static void main(String[] args) {
  byte b = 1;
  for (int i = 0; i < 9; i++) {
    System.out.println(Integer.toBinaryString(b));
    b <<= 1;
  }
}

Вывод:
1
10
100
1000
10000
100000
1000000
11111111111111111111111110000000
0


Особенно меня интересует предпоследняя строка.