/media/sda-magnetic/david/Dokumente-16-2024-08-01/informatikUmathematik/excerpt20240906before/progs2sources20240801/float.c


#include <stdio.h>
#include <string.h>

int main (void) {
    float a;
    int i;
    char s[sizeof(float)];


    printf ("%i\n", sizeof(a));
    a = (float)543.75;


    memcpy(s, &a, sizeof(a));

    for (int i = 0; i < sizeof(float); ++i)
        printf("%x", s[i]);
return 0;
}

/* f = (-1)^s * 1.m * 2^(e-b)
 * -543.75
 * 543 / 2 = 271        Rest 1
 * 271 / 2 = 135        Rest 1
 * 135 / 2 = 67         Rest 1
 * 67 / 2 = 33          Rest 1
 * 33 / 2 = 16          Rest 1
 * 16 / 2 = 8           Rest 0
 * 8 / 2 = 4            Rest 0
 * 4 / 2 = 2            Rest 0
 * 2 / 2 = 1            Rest 0
 * 1 / 2 = 0            Rest 1
 *
 * 10.0001.1111
 *
 * 0.75 * 2 = 1.5       1
 * 0.5 * 2 = 1          1 falsch - nichts
 *
 * 10.0001.1111.1
 * 1,0.0001.1111.1
 * 127 + 9 = 136
 *
 * 136 / 2 = 68         Rest 0
 * 68 / 2 = 34          Rest 0
 * 34 / 2 = 17          Rest 0
 * 17 / 2 = 8           Rest 1
 * 8 / 2 = 4            Rest 0
 * 4 / 2 = 2            Rest 0
 * 2 / 2 = 1            Rest 0
 * 1 / 2 = 0            Rest 1
 *
 * 1000.1000
 * 136 ^= 1000.1000
 *

 1,0.0001.1111.1,11

 |0|1000.1000|1,0.0001.1111.1,11

 |0|10001000|1000011111111

 1100.0100.0100.0011.1111.1100
 1100.0100.0000.0111.1111.1000

 C407F8

*/