我不明白为什么要使用{b=(byte)I}或{I=(int)d}this进行转换。请真诚地告诉我为什么会在皈依中发生这种事。下面是我的示例代码。
public class Conversion {
public static void main(String[] args) {
byte b;
int i = 257;
double d = 323.142;
System.out.println("n Conversion int to byt");
b = (byte) i;
System.out.println("i and b "+i+ " after "+b);
System.out.println("n Conversion int to byt");
i = (int) d;
System.out.println("d and i "+d+ " after "+i);
}
}
byte
的范围从-128 to 127
开始,如果超出其限制,则必须显式将其强制转换为int
就像int
有范围一样,如果它超出了它的范围,你必须显式地投射
如果byte
的值在-128 to 127
的范围内,则不需要显式将其强制转换为int
要获得更多帮助,我有下面的链接,它将指导你
-
Oracle关于基元数据类型的描述
-
为什么Java中的字节范围是128到127?
- 第五章。转换和促销
您正在执行"加宽原始转换"one_answers"缩小原始转换"。
https://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.1.2https://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.1.3