| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 
 | double db_num;
        int    sign_bit;
	String t = "0.001";
        db_num = Double.parseDouble(t.toString());
                           /* FOR TEMPORARY */
       sign_bit = (db_num > 0.0D) ? 0 : 1;    
 
        db_num = Math.abs(db_num);          
 
 
        double db_tmp = db_num;
        int expo_cnt = 0;;
 
        if ( db_num >= 1.0D) {
            for (expo_cnt=1; (db_tmp=db_tmp/16.0D)>1.0D; expo_cnt++);
        }
        else {
            for (expo_cnt=0; (db_tmp=db_tmp*16.0D)<1.0D; expo_cnt--);
            db_tmp = db_tmp/16.0D;
        }
 
        int exponent = expo_cnt  + 64;   /* Excess-64 code */
        //b = (byte)(sign_bit << 7) | (byte)(exponent & 0x0000007F);
      byte b1 = (byte)(sign_bit << 7);
        byte b2 = (byte)(exponent & 0x7F);
        byte b3 = (byte)(b1 | b2);
 
        write(b3);
 
 
        String s = "";
        byte b = 0;
        for (int i=1; i<=56; i++) {
            db_tmp = db_tmp*2.0D;
            if (db_tmp >= 1.0D) {
                db_tmp = db_tmp - 1.0D;
                s = s + "1";
                b = (byte)(b << 1);
                b = (byte)(b | 0x1);
            }
            else {
                s = s + "0";
                b = (byte)(b << 1);
            }
            if (i % 8 == 0) {   /* one byte */
            write(b);
                b = 0; | 
Partager