为什么输出显示 3 而不是 java 中的字符

why the output displays 3 and not a char in java

我会理解为什么输出是 3 而不是 char('5' unicode 字符)

char c='5';
c = (char) (c - 2);
System.out.println(c); 

您能否解释一下 ASCII 码和 unicode 字符之间的区别?

提前谢谢你:)

输出是 char '3',而不是数字 3

当您从字符 '5' 中减去 2 并将结果转换为 char 时,您将得到字符 '3'.

char 类型是数字原始类型。每个字符都有一个对应的整数值,介于 0 和 2^16-1 之间。字符'3'的整数值比字符'5'的值小2.

是一个字符。它是一个代表数字 3 的字符,就像“3”是键盘上的一个字符一样。

当你从一个字符中减去一个时,你会得到紧接其前的字符。例如,'B' - 1 = A.

您从 字符“5”开始,然后减去两个,得到字符“3”。如果你减去 6,你不会得到 -1,你会得到一个随机字符(我认为是'/')。

基本上这个减法是有效的,因为字符 0 - 9 是连续存储的。