【问题标题】:short and char type in Java [duplicate]Java中的short和char类型[重复]
【发布时间】:2011-02-20 18:00:29
【问题描述】:

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

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

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

【问题讨论】:

    标签: java


    【解决方案1】:

    char 未签名,short 已签名。

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

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

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

    【讨论】:

    • 一个相关的问题,为什么 java 不能从 short 转换为 char?
    • 因为它们的范围不同。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2018-09-02
      • 1970-01-01
      • 2019-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多