ما سبب السلوك المختلف لمترجم اللغة عندما يحصل overflow لمتحول فيما اذا كان int او byte مثلاً.. ؟؟
public class Overflow {
public static void main(String[] args) {
int big = 0x7fffffff; // max int value
System.out.println("big = " + big);
int bigger = big * 4;
System.out.println("bigger = " + bigger);
}
}الخرج:
big = 2147483647 bigger = -4
بينما في حال كون النمط byte
public static void main(String[] args) {
byte big = 0x7f; // max byte value
System.out.println("big = " + big);
byte bigger = big * 4;
System.out.println("bigger = " + bigger);
}يعترض المترجم ولا تتم الترجمة
possible loss of precision: int, required: byte
؟؟؟؟
