3
int hlp_string_diff(register const char *const s1,
4
register const char *const s2)
7
while (s1[i] && (s1[i] == s2[i])) {
13
f_i32 float2int(float f)
15
union { f_i32 i; float f; } tmp;
20
float int2float(f_i32 i32)
22
union { f_i32 i; float f; } tmp;
27
float byte2float(unsigned char b)
33
f_u32 mantissa = b & 0x07;
34
f_u32 exponent = (b >> 3) & 0x1f;
36
return int2float((mantissa << 21) | ((exponent + 48) << 24));
40
unsigned char float2byte(float f)
46
/* correctly order the bytes for encoding */
47
f_u32 i32 = float2int(f);
48
int mantissa = (i32 & 0xEf0000) >> 21;
49
int exponent = ((i32 >> 24) - 48);
51
if (exponent > 0x1f) {
52
exponent = 0x1f; /* 0x1f = 31 = 0b00011111 */
53
mantissa = 0x07; /* 0x07 = 7 = 0b00000111 */
60
return ((exponent<<3) | mantissa);