我理解为什么输出是3而不是char(' 5' unicode字符)
char c='5';
c = (char) (c - 2);
System.out.println(c);
你可以解释一下代码ASCII和unicode字符之间的区别吗?
提前谢谢你:)
答案 0 :(得分:2)
这是一个角色。这是一个代表数字3的字符,就像键盘上的字符“3”一样。
当你从一个角色中减去一个角色时,你会在此之前得到一个角色。例如,'B' - 1 = A
。
你从字符'5'开始并减去2,给出字符'3'。如果你减去6,你就不会得到-1,你会得到一个随机字符('/'我认为)。
基本上这个减法是有效的,因为字符 0 - 9是连续存储的。
答案 1 :(得分:1)
输出为char
'3'
,而不是数字3
。
当您从字符2
中减去'5'
并将结果转换为char
时,您会获得字符'3'
。
char
类型是数字基元类型。每个字符具有0到2 ^ 16-1之间的对应整数值。字符' 3'的整数值小于2的字符值' 5'。