Java数据类型转换

时间:2014-04-29 17:58:08

标签: java

我是一名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

我可以根据size数据类型将任何东西转换为更大或相等,但有1个例外,我可以从char转换为4或8字节变量,但我无法从其他任何内容转换为char。

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

1 个答案:

答案 0 :(得分:3)

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

您总是可以使用显式类型转换:

char c = (char) -1;

range-argument也是你从64位长到#34;较小"的隐式转换的原因。 32位浮点数。