Вы написали 0bx
, что было бы неплохо, если бы он работал.Это не так, как вы сами испытали.
Чтобы понять почему, вам нужно знать, что написанный вами код сначала интерпретируется целиком и переводится компилятором в программу в машинном коде.В принципе, компилятор может выяснить, что вы пытаетесь сказать с помощью выражения 0bx
.Просто язык программирования Java не допускает этого выражения.
Он говорит что-то похожее на:
Бинарный литерал записывается как 0b
, за которым следуют только 0 и1, по крайней мере, один и как можно больше.
Слово литерал означает нечто, относящееся к буквам, «как написано».Поэтому вы не можете использовать эту часть языка программирования.
Но есть и другая часть.Метод Integer.parseInt
имеет 2 варианта: Integer.parseInt("12345")
преобразует десятичное представление числа в это число.Вариант Integer.parseInt("101110101101", 2)
разбивает двоичное представление числа на это число.
Если есть метод toy.nextInt(2)
, вы можете использовать его.В противном случае вы должны использовать Integer.parseInt(toy.next(), 2)
.