我是一名 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 个异常(exception),我可以将 char 转换为 4 或 8 字节变量,但无法从其他任何数据类型转换为 char。
问题:在处理涉及 char 数据类型的转换时应用什么样的规则?
最佳答案
隐式数据类型转换规则基于数值范围。 char 数据类型是唯一的无符号整数类型,它不能表示其他数字类型可以表示的负值。例如,-1 可以表示为除 char 之外的任何数字类型,因此不能隐式转换为 char。
不过,您始终可以使用显式类型转换:
char c = (char) -1;
范围参数也是您从 64 位长隐式转换为“较小”32 位 float 的原因。
关于Java 数据类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23371947/