我无法理解 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) 的二进制代码?
慕村9548890
相关分类