为什么我不能将(字节)数据类型转换为 Java 中的(短)数据类型
Why can't i cast (byte) Data Type into (short) Data Type in Java
所以,实际上我在 Java 编程语言方面还是新手,并且仍在学习转换数据类型 所以在这种情况下,我在将 Byte 转换为 Short 时遇到了麻烦。你们能帮帮我吗??
public class Main {
public static void main(Strings[] args) {
int number = 2;
long updateNumber = number + 2;
System.out.println(updateNumber); //output : 4
}
}
所以在这种情况下,我可以正常地将 (int) 转换为 (long) 数据类型,因为 (long) 数据大小大于 (int)。这与我试图将它从 (short) 转换为 (int) 时的情况相同。但为什么我不能使用这个概念将数据类型从 (byte) 转换为 (short)?尽管(短)的数据大小大于(字节)??
public class Main {
public static void main(Strings[] args) {
byte number = 2;
short updateNumber = number + 2;
System.out.println(updateNumber); //output : Error
}
}
我想就是这样..抱歉给您带来麻烦,谢谢您呵呵..
当我们添加两个 byte
类型变量或 byte
类型变量与 int
类型变量时,结果会自动转换(隐式转换 ) 到 int
。所以如果我们想把加法的结果赋给一个short类型的变量,编译器会报错。
虽然您可以通过显式转换将其分配给 short 类型变量。
public static void main(String[] args) throws MyException {
byte number = 2;
//Explicit casting
short updateNumber = (short) (number + 2);
System.out.println(updateNumber); // output : Error
}
因为加法的结果可能会溢出,因为这里的数字变量值可以在运行时更改。因此,如果您将数字声明为最终数字并且数字的加法符合字节范围,那么您将不需要进行显式转换,因为编译器会提前知道加法的结果是否可以按字节保存。
public static void main(String[] args) throws MyException {
final byte number = 2;
//Explicit casting not needed as number is final
short updateNumber = number + 2;
System.out.println(updateNumber); // output : Error
}
所以,实际上我在 Java 编程语言方面还是新手,并且仍在学习转换数据类型 所以在这种情况下,我在将 Byte 转换为 Short 时遇到了麻烦。你们能帮帮我吗??
public class Main {
public static void main(Strings[] args) {
int number = 2;
long updateNumber = number + 2;
System.out.println(updateNumber); //output : 4
}
}
所以在这种情况下,我可以正常地将 (int) 转换为 (long) 数据类型,因为 (long) 数据大小大于 (int)。这与我试图将它从 (short) 转换为 (int) 时的情况相同。但为什么我不能使用这个概念将数据类型从 (byte) 转换为 (short)?尽管(短)的数据大小大于(字节)??
public class Main {
public static void main(Strings[] args) {
byte number = 2;
short updateNumber = number + 2;
System.out.println(updateNumber); //output : Error
}
}
我想就是这样..抱歉给您带来麻烦,谢谢您呵呵..
当我们添加两个 byte
类型变量或 byte
类型变量与 int
类型变量时,结果会自动转换(隐式转换 ) 到 int
。所以如果我们想把加法的结果赋给一个short类型的变量,编译器会报错。
虽然您可以通过显式转换将其分配给 short 类型变量。
public static void main(String[] args) throws MyException {
byte number = 2;
//Explicit casting
short updateNumber = (short) (number + 2);
System.out.println(updateNumber); // output : Error
}
因为加法的结果可能会溢出,因为这里的数字变量值可以在运行时更改。因此,如果您将数字声明为最终数字并且数字的加法符合字节范围,那么您将不需要进行显式转换,因为编译器会提前知道加法的结果是否可以按字节保存。
public static void main(String[] args) throws MyException {
final byte number = 2;
//Explicit casting not needed as number is final
short updateNumber = number + 2;
System.out.println(updateNumber); // output : Error
}