JAVA перевод байтового потока в char unicode

Вопрос по поводу байтового чтения данных из консоли.

Например вводим букву "Я". В unicode "Я" равняется числу 1071. При байтовом чтении буквы "Я" мы получаем 2 числа: 208 и 175.

// input "Я"
while (true) {
   int x = System.in.read();
   System.out.println(x);
}

208 - 11010000, 175 - 10101111

Символьное чтение

// input "Я"
InputStreamReader reader = new InputStreamReader(System.in);
while (true) {
   int x = reader.read();
   System.out.println(x);
}
char x = 1071;
System.out.println(x); // Я

Русские символы занимают 2 байта в памяти.

Каким образом при переводе байтов в char получается 1071 ? Кто может раписать расчет?


Ответы (0 шт):