2017-07-13 22 views
0

不是一个char我会明白为什么输出是3,而不是一个char(“5”的Unicode字符)为什么输出显示3和Java的

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

,你能解释一下什么是beetween代码的区别ASCII和Unicode字符?

预先感谢您:)

+1

可能重复[ASCII和Unicode之间有什么区别?](https://stackoverflow.com/questions/19212306/whats-the-difference-between-ascii-and-unicode) – Daedric

+1

减法将字符“ '5''到字符'3'中。见例如[this ASCII table](http://www.asciitable.com/)来理解为什么。 –

+1

你是什么意思“不是char”?这是字符'3' - 目前还不清楚你在问什么。 –

回答

2

这是一个角色。它是代表数字3的字符,就像'3'是键盘上的字符一样。

当你从一个角色中减去一个角色时,你会在此之前获得角色。例如,'B' - 1 = A

您从字符'5'开始并减去2,给出字符'3'。如果你减去6,你不会得到-1,你会得到一个随机字符('/'我认为)。

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

1

输出为char'3',数量不限3

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

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

相关问题