Java中的short和char类型

根据Java标准,short和char类型都使用2个字节,因此当我编写类似的东西时

char ch = 'c'; short s = ch; 

有一个错误说“可能会损失精度”。 我在这里失踪了什么。

Char未签名,签名简称。

因此,虽然它们都是2字节长,但它们将第16位用于不同目的。

char类型的范围是0到2 ^ 16 – 1(0到65535)。

短程为-2 ^ 15至2 ^ 15-1(-32,768至32,767)。

区别在于char是无符号的, short是签名的。 因此, char值的一半范围太大而不能表示为short (当然,在对称性中, char不能表示short值的任何负值)。