import fr.jussieu.script.*; class Entiers { /** * Encore le codage des entiers */ public static void main (String [] a) { short x; x = (short)1; int i = 0; while (i < 15) { x = (short)(2*x); i = i+1; } // Ici, on a multiplié 15 fois par 2. // Un short étant codé sur 2 octets soit 16 bits, // la valeur maximale du type est 2^15-1, et la ligne suivante // affiche ainsi 2^15-2^16, soit -2^15 Deug.println(x); // On repasse dans les positifs, à 2^15-1 x--; Deug.println(x); // 0x7fff est, en binaire, 0111 1111 1111 1111 soit 2^15-1 if (x == 0x7fff) Deug.println ("OK"); else Deug.println ("Probleme"); x = (short)(x*2); // La ligne suivante affiche -2 Deug.println(x); } }