Java中的short和char类型

时间:2011-02-20 18:00:30

标签: java

根据Java标准,shortchar类型都使用2个字节,所以当我编写类似的东西时:

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

有一个错误说“可能会失去精确度”。我在这里缺少什么?

2 个答案:

答案 0 :(得分:39)

char未签名,short已签名。

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

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

short范围是-2 ^ 15到2 ^ 15 - 1(-32,768到32,767)。

答案 1 :(得分:11)

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