Побитовый сдвиг <<, не получается операция
Двоичная система исчисления.
Знаковый оператор сдвига вправо >>
" Все биты смещаются вправо. Число слева дополняется нулем, если число положительное и единицей, если отрицательное. Операция используется для быстрого деления на 2. Если делится нечетное число, то остаток отбрасывается для положительных чисел и сохраняется для отрицательных.
"Знаковый оператор сдвига влево <<
Все биты смещаются влево. Число справа дополняется нулем. Операция используется для быстрого умножения на 2. Если оператор применяется к числу, умножение на 2 которого будет больше максимального значения int (2147483647), то в результате будет отрицательное число. Это происходит потому, что краний левый бит, который отвечает за знак числа, выставляется в единицу, что соответствует отрицательным числам.
Почему когда я делаю все в еклипс, то там работает не так? Например:
int x = 10;
String str = Integer.toBinaryString(x);
System.out.println(x+ " "+ str ); //10 1010
x = x <<2;
System.out.println(x); // 40
Тут же другое должно получится???
Это как основной вопрос.
Второй вопрос: как число
String str = Integer.toBinaryString(x);
уже разложеное побитно, записать в инт, чтобы сделать с ним побитовую операцию?