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

为什么在java中输出显示3而不是字符,java,unicode,char,ascii,arithmetic-expressions,Java,Unicode,Char,Ascii,Arithmetic Expressions,我会理解为什么输出是3而不是字符('5'unicode字符) 你能解释一下ASCII码和unicode码的区别吗 提前感谢:)输出的是字符'3',而不是数字3 当您从字符'5'中减去2并将结果转换为char时,您将得到字符'3' char类型是一种数值基元类型。每个字符都有一个介于0和2^16-1之间的对应整数值。字符“3”的整数值比字符“5”的值小2。输出的是字符'3',而不是数字3 当您从字符'5'中减去2并将结果转换为char时,您将得到字符'3' char类型是一种数值基元类型。每个字符

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

你能解释一下ASCII码和unicode码的区别吗


提前感谢:)

输出的是
字符
'3'
,而不是数字
3

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


char
类型是一种数值基元类型。每个字符都有一个介于0和2^16-1之间的对应整数值。字符“3”的整数值比字符“5”的值小2。

输出的是
字符
'3'
,而不是数字
3

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


char
类型是一种数值基元类型。每个字符都有一个介于0和2^16-1之间的对应整数值。字符“3”的整数值比字符“5”的值小2。

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

当你从一个字符中减去一个字符时,你得到的字符就在那之前。例如,
'B'-1=A

从字符“5”开始,减去2,得到字符“3”。如果你减去6,你不会得到-1,你会得到一个随机字符(“/”)


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

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

当你从一个字符中减去一个字符时,你得到的字符就在那之前。例如,
'B'-1=A

从字符“5”开始,减去2,得到字符“3”。如果你减去6,你不会得到-1,你会得到一个随机字符(“/”)


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

减法的可能重复将字符
'5'
转换为字符
'3'
。请参阅,例如,了解原因。你说的“不是字符”是什么意思?这是字符
'3'
——不清楚你在问什么。一个关键的概念区别是ASCII有一种编码,而Unicode有几种。既然您知道了这一点,就可以忘记ASCII了。您现在不是,也可能永远不会编写使用ASCII的代码。XML、HTML等使用Unicode。Java、.NET、JavaScript、SQL(NCHAR、NVARCHAR)使用Unicode的UTF-16编码
char
是一个UTF-16代码单元。减法的可能重复将字符
'5'
转换为字符
'3'
。请参阅,例如,了解原因。你说的“不是字符”是什么意思?这是字符
'3'
——不清楚你在问什么。一个关键的概念区别是ASCII有一种编码,而Unicode有几种。既然您知道了这一点,就可以忘记ASCII了。您现在不是,也可能永远不会编写使用ASCII的代码。XML、HTML等使用Unicode。Java、.NET、JavaScript、SQL(NCHAR、NVARCHAR)使用Unicode的UTF-16编码
char
是一个UTF-16代码单元。
char c='5';
c = (char) (c - 2);
System.out.println(c);