Java中的short和char类型

22

根据Java标准,shortchar类型都使用2个字节,因此当我编写以下代码时:

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

出现了“可能会丢失精度”的错误。我错过了什么吗?

2个回答

47

char 是无符号类型,short 是有符号类型。

虽然它们都是两个字节长,但它们使用第16位的方式不同。

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

short 类型的取值范围是-2^15到2^15-1 (-32768到32767)。


为什么Java不能将short转换为char? - shreyasva
1
因为它们没有覆盖相同的范围。 - Peter Knego

12

区别在于char是无符号的,而short是有符号的。因此,char的值域范围中一半的值太大了,不能用short表示(当然,同样地,char不能表示short能表示的任何负值)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接