Я не могу понять, как работает метод System.in.read ().
Существует такой код:
public static void main(String[] args) throws IOException {
while (true){
Integer x = System.in.read();
System.out.println(Integer.toString(x, 2));
}
Я знаю, что метод System.in.read () читаетиз входного потока на один байт.
Поэтому, когда я ввожу 'A' (U + 0041, один байт используется для хранения символа) - вывод программы:
1000001 (U+0041)
1010 (NL) - it works as expected.
Нокогда я ввожу «Я» (U + 042F, для хранения символа используются два байта) - вывод:
11010000 (byte1)
10101111 (byte2)
1010 (byte3 - NL)
Реальный код для буквы «Я» (U + 042F) - 10000101111.
Почему 11010000 10101111 (byte1 + byte2) не является двоичным кодом для буквы «Я» (U + 042F)?