int i = 37; // 00000000000000000000000000100101 = 0.00000000.00000000000000000100101 = ((-1)^0)*1,00000000000000000100101*2^-127 = 1,00000000000000000100101*(1/1,701419339096245668434929897641e+38) = 0,000000
float f = *(float*)&i; // 0,000000
int i = -37; // 11111111111111111111111111011010 = 1.11111111.11111111111111111011010 = ((-1)^1)*1,1111111111111111111111111011010*2^255-127= -1,999999982304871082305908203125*3,4028236692093846346337460743177e+38 = -6,8056472782053657584265955775406e+38
float f = *(float*)&i; // -1.#QNAN0
float f = 7.0; // 0.10000001.11000000000000000000000 = 1088421888
int i = *(int*)&f; // 1088421888
float f = -7.0; // 1.01111110.00111111111111111111111 = -1059061760
int i = *(int*)&f; // -1059061760
Код на СИ. По какому алгоритму этот код получает из int => float, float=> int, как преобразуется мантисса и порядок в целое число?