【问题标题】:Java datatype conversions [duplicate]Java数据类型转换[重复]
【发布时间】:2014-04-29 17:58:08
【问题描述】:

我是一名 C++ 程序员,我正在努力理解 Java 数据类型。

以下有什么问题吗:

byte:   signed   1 byte
short:  signed   2 bytes
int:    signed   4 bytes
long:   signed   8 bytes
float:           4 bytes
double:          8 bytes
boolean:         ? bytes
char:   unsigned 2 bytes

我可以将任何数据类型转换为更大或相等的大小数据类型,除了 1 个例外,我可以从 char 转换为 4 或 8 字节变量,但我不能从其他任何数据类型转换为 char。

问题:在处理涉及 char 数据类型的转换时适用什么样的规则?

【问题讨论】:

标签: java


【解决方案1】:

隐式数据类型转换规则基于数值范围。 char 数据类型是唯一的无符号整数类型,它不能表示其他数值类型可以表示的负值。例如,-1 可以表示为除 char 之外的任何数字类型,因此不能隐式转换为 char。

不过,您始终可以使用显式类型转换:

char c = (char) -1;

范围参数也是为什么要进行从 64 位长到“较小”的 32 位浮点数的隐式转换。

【讨论】:

  • +1 认为可能涉及隐式转换。我已经习惯于让我的转换变得明确,以至于我从来没有想过它。 :)
猜你喜欢
  • 1970-01-01
  • 2014-09-25
  • 2016-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-19
  • 1970-01-01
  • 2011-03-17
相关资源
最近更新 更多