我是一名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数据类型的转换时适用哪种规则?
答案 0 :(得分:3)
隐式数据类型转换规则基于数值范围。 char数据类型是唯一的无符号整数类型,它不能表示其他数字类型可以的负值。例如,-1可以表示为除char之外的任何数字类型,因此不能隐式转换为char。
您总是可以使用显式类型转换:
char c = (char) -1;
range-argument也是你从64位长到#34;较小"的隐式转换的原因。 32位浮点数。