Home | History | Annotate | Download | only in src
      1 // Copyright 2006 The Android Open Source Project
      2 
      3 /**
      4  * Test arithmetic operations.
      5  */
      6 public class Main {
      7 
      8     static void shiftTest1()
      9     {
     10         final int[] mBytes = {
     11             0x11, 0x22, 0x33, 0x44, 0x88, 0x99, 0xaa, 0xbb
     12         };
     13         long l;
     14         int i1, i2;
     15 
     16         i1 = mBytes[0] | mBytes[1] << 8 | mBytes[2] << 16 | mBytes[3] << 24;
     17         i2 = mBytes[4] | mBytes[5] << 8 | mBytes[6] << 16 | mBytes[7] << 24;
     18         l = i1 | ((long)i2 << 32);
     19 
     20 	System.out.println("values are " + Integer.toHexString(i1)
     21 	    + " and " + Integer.toHexString(i2));
     22 
     23         System.out.println("First l is " + Long.toHexString(l));
     24 
     25         l = (long)mBytes[0]
     26             | (long)mBytes[1] << 8
     27             | (long)mBytes[2] << 16
     28             | (long)mBytes[3] << 24
     29             | (long)mBytes[4] << 32
     30             | (long)mBytes[5] << 40
     31             | (long)mBytes[6] << 48
     32             | (long)mBytes[7] << 56;
     33 
     34         System.out.println("Second l is " + Long.toHexString(l));
     35     }
     36 
     37     static void shiftTest2()
     38     {
     39         long    a = 0x11;
     40         long    b = 0x22;
     41         long    c = 0x33;
     42         long    d = 0x44;
     43         long    e = 0x55;
     44         long    f = 0x66;
     45         long    g = 0x77;
     46         long    h = 0x88;
     47 
     48         long    result = ((a << 56) | (b << 48) | (c << 40) | (d << 32) |
     49                          (e << 24) | (f << 16) | (g << 8) | h);
     50 
     51         System.out.println("shiftTest2 l is " + Long.toHexString(result));
     52     }
     53 
     54     static void convTest()
     55     {
     56         float f;
     57         double d;
     58         int i;
     59         long l;
     60 
     61         /* float --> int */
     62         f = 1234.5678f;
     63         i = (int) f;
     64         System.out.println("f=" + f + " --> i=" + i);
     65 
     66         f = -1234.5678f;
     67         i = (int) f;
     68         System.out.println("f=" + f + " --> i=" + i);
     69 
     70         /* double --> int */
     71         d = 1234.5678;
     72         i = (int) d;
     73         System.out.println("d=" + d + " --> i=" + i);
     74 
     75         d = -1234.5678;
     76         i = (int) d;
     77         System.out.println("d=" + d + " --> i=" + i);
     78 
     79         /* double --> long */
     80         d = 5678956789.0123;
     81         l = (long) d;
     82         System.out.println("d=" + d + " --> l=" + l);
     83 
     84         d = -5678956789.0123;
     85         l = (long) d;
     86         System.out.println("d=" + d + " --> l=" + l);
     87 
     88         /* int --> long */
     89         i = 7654;
     90         l = (long) i;
     91         System.out.println("i=" + i + " --> l=" + l);
     92 
     93         i = -7654;
     94         l = (long) i;
     95         System.out.println("i=" + i + " --> l=" + l);
     96 
     97         /* long --> int (with truncation) */
     98         l = 5678956789L;
     99         i = (int) l;
    100         System.out.println("l=" + l + " --> i=" + i);
    101 
    102         l = -5678956789L;
    103         i = (int) l;
    104         System.out.println("l=" + l + " --> i=" + i);
    105 
    106         /* int --> float */
    107         i = 1234;
    108         f = (float) i;
    109         System.out.println("i=" + i + " --> f=" + f);
    110 
    111         i = -1234;
    112         f = (float) i;
    113         System.out.println("i=" + i + " --> f=" + f);
    114     }
    115 
    116     static void unsignedShiftTest()
    117     {
    118         byte b = -4;
    119         short s = -4;
    120         char c = 0xfffc;
    121         int i = -4;
    122 
    123         b >>>= 4;
    124         s >>>= 4;
    125         c >>>= 4;
    126         i >>>= 4;
    127 
    128         System.out.println("b=" + b + ", s=" + s + ", c=" + (int)c + ", i=" +i);
    129         System.out.println("b=0x" + Integer.toHexString((int)b)
    130             + ", s=0x" + Integer.toHexString((int)s)
    131             + ", c=0x" + Integer.toHexString((int)c)
    132             + ", i=0x" + Integer.toHexString(i));
    133     }
    134 
    135     public static void main(String[] args) {
    136         convTest();
    137         shiftTest1();
    138         shiftTest2();
    139         unsignedShiftTest();
    140     }
    141 }
    142