【发布时间】:2011-02-20 18:00:29
【问题描述】:
根据 Java 标准,short 和 char 类型都使用 2 个字节,所以当我编写如下代码时:
char ch = 'c';
short s = ch;
出现“可能丢失精度”的错误。我在这里错过了什么?
【问题讨论】:
标签: java
根据 Java 标准,short 和 char 类型都使用 2 个字节,所以当我编写如下代码时:
char ch = 'c';
short s = ch;
出现“可能丢失精度”的错误。我在这里错过了什么?
【问题讨论】:
标签: java
char 未签名,short 已签名。
因此,虽然它们都是 2 字节长,但它们将第十六位用于不同的目的。
char 类型的范围是 0 到 2^16 - 1(0 到 65535)。
short 的范围是 -2^15 到 2^15 - 1(-32,768 到 32,767)。
【讨论】:
区别在于char是无符号的,short是有符号的。因此,char 的一半值范围太大而无法表示为 short(当然,在对称性中,char 不能表示任何负值 short 可以)。
【讨论】: