import Prog1Tools.IOTools;
public class Litkonst  //Name muss gleich Dateinamen sein!!
                         // Hier geht es einmal darum, wie Konstanten
                         // sogenannte "Literalkonstanten" behandelt werden.
                       // Wird ein Ueberschreiten des Bereichs beim
		       // Kompilieren erkannt?? Wie ist es, wenn gerechnet wird
		        // etwa 200 + 400 einer Variablen vom Typ byte
			// zugewiesen wird?? Inwieweit rechnet der Compiler
			// aus?? 
			//Etwas fuer lange Winterabende auszuprobieren. 
{
  public static void main(String[] args)
  {
   byte i, j;
   long a, b;
   int c ,d; 
   short e, f; 
   j = 1; //Initialisierung von j.
   j = (byte) 133; // Ein Experiment.
   i = (byte) (IOTools.readInteger("i=")); //Eingabe von i mit prompt. 
   //a = 4444444444444444444;
   a = 4444444444444444444L;
   b =  IOTools.readLong("b= " );
   c = 3333333;
   e = IOTools.readShort("e=");
   System.out.println("j ist 133 zu byte das ergibt:" + j
       + "ein typischer Fall von Zweierkomplement");
   //a = 2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2;
   //a = a * a;
   //System.out.print(a);
   e =  2*2*2*2*2*2*2*2*2*2*2*2*2*2 ; //Der Compiler scheint diesen Wert
                                      // auszurechnen. 
   e = (short) (e * e);
   System.out.print(e);
   }
  } 
   
