Shop OBEX P1 Docs P2 Docs Learn Events
todays funny-word-of-the-day is... — Parallax Forums

todays funny-word-of-the-day is...

Martin HodgeMartin Hodge Posts: 1,246
edited 2010-03-19 00:33 in General Discussion
"bulbous"

Comments

  • Martin HodgeMartin Hodge Posts: 1,246
    edited 2010-03-19 00:33
        byte 1              byte 2             byte 3
    1000100010010001   0110110010111100   0010001010110010
    8   8   9   1      6   c   b   c      2   2   b   2
    ------------------------------------------------------
    
        byte 1
    1000100010010001   
    8   8   9   1
    
    AND $00ff
                                       xxxxxxxx10010001<-------------------
    xxxxxxxx10010001  (upper_field << 20   00001001000100000000000000000000
    x   x   9   1                          0   9   1   0   0   0   0   0
    
    AND $ff00
                                                      10001000xxxxxxxx<----
    10001000xxxxxxxx  (lower_field <<  5)  00000000000100010000000000000000
    8   8   x   x                          0   0   1   1   0   0   0   0
    
    =======================================================================
    
         byte 2
    0110110010111100
    6   c   b   c
    
    AND $ff00
                                                           ---------->01101100xxxxxxxx
    01101100xxxxxxxx  (upper_field >> 11)  00001001000100000000000000001101
    6   c   x   x                          0   9   1   0   0   0   0   d
    
    AND $ffff
                                      0110110010111100<--------------------
    0110110010111100  (lower_field << 21)  10010111100100010000000000000000
    6   c   b   c                          9   7   9   1   0   0   0   0
    
    =======================================================================
    
         byte 3
    0010001010110010
    2   2   b   2
    
    AND $8000
                                           0xxxxxxxxxxxxxxx<---------------
    0xxxxxxxxxxxxxxx  (upper_field << 16)  00001001000100000000000000001101
    0   0   0   0                          0   9   1   0   0   0   0   d
    
    AND $7fff
                                                      x010001010110010<----
    x010001010110010  (upper_field <<  5)  00001001000101000101011001001101
    0   2   b   2                          0   9   1   4   5   6   4   d
    
    =======================================================================
    
    00001001000101000101011001001101 (upper_field)
    10010111100100010000000000000000 (lower_field)
    10011111100101010101011001001101
    9   f   9   5   5   6   4   d    ($9f95564d != 0)
    
    =======================================================================
    
               0   3   7   e
               0000001101111110<-------------------
    ($037e << 20)  00110111111000000000000000000000
                   3   7   e   0   0   0   0   0
                                 ADD  
    (upper_field)  00001001000101000101011001001101
                   0   9   1   4   5   6   4   d
                                 EQU
                   01000000111101000101011001001101
    (upper_field)  4   0   f   4   5   6   4   d
    
    =======================================================================
              upper_field                       lower_field
    01000000111101000101011001001101  10010111100100010000000000000000
    4   0   f   4   5   6   4   d     9   7   9   1   0   0   0   0
    
    $40f4564d97910000 = 83300.849503517150
    
    
    



    What does one take a day to do? They take a day to flowchart the conversion of some unknown, 48bit, funky floating point (ffp) format into IEEE-754 format by reverse engineering a 15 year old C program.

    Post Edited (Shmoopy) : 3/19/2010 1:01:33 AM GMT
Sign In or Register to comment.