История изменений
Исправление uin, (текущая версия) :
Так а мне зачем конверсия то теперь
function IEEE_754_to_float(b0, b1, b2, b3) {
let sign = (b0 >> 7) ? -1 : 1;
let exponent = (b0 << 1) + (b1 >> 7) - 126;
let fraction_bits = ((b1 & 0x7F) << 16) + (b2 << 8) + b3;
var fraction = 0.5f;
for (uint8_t ii = 0; ii < 24; ++ii) {
fraction += ldexpf((fraction_bits >> (23 - ii)) & 1, -(ii + 1));
}
let significand = sign * fraction;
return ldexpf(significand, exponent);
}
//data = be32fp => uint8_arr
IEEE_754_to_float(data[3], data[2], data[1], data[0])
И точно так же делать для le -> be можно наверное
man ldexpf
хм, понятно ладно разберусь
судя по всему, эта функция преобразует стандартный ieee754 float из массива байт в нативный сишный float (который может использовать другой стандарт).
Ну ведь мне же это и над, у меня нет char -ов которые можно просто переставить и потом как одно число 4 чара ипрочитать у меня есть массив байтов, а точнее вообще чисел которые можно только складывать умножать делить и заполнять нулями - все.
это и есть десятичная, f значит «float».
А, ну вот откудаж мне было знать
Исходная версия uin, :
Так а мне зачем конверсия то теперь
function IEEE_754_to_float(b0, b1, b2, b3) {
let sign = (b0 >> 7) ? -1 : 1;
let exponent = (b0 << 1) + (b1 >> 7) - 126;
let fraction_bits = ((b1 & 0x7F) << 16) + (b2 << 8) + b3;
var fraction = 0.5f;
for (uint8_t ii = 0; ii < 24; ++ii) {
fraction += ldexpf((fraction_bits >> (23 - ii)) & 1, -(ii + 1));
}
let significand = sign * fraction;
return ldexpf(significand, exponent);
}
//data = be32fp => uint8_arr
IEEE_754_to_float(data[3], data[2], data[1], data[0])
И точно так же делать для le -> be можно наверное
man ldexpf
хм, понятно ладно разберусь
судя по всему, эта функция преобразует стандартный ieee754 float из массива байт в нативный сишный float (который может использовать другой стандарт).
Ну ведь мне же это и над, у меня нет char -ов которые можно просто переставить и потом как одно число 4 чара ипрочитать у меня есть массив байтов, а точнее вообще чисел которые можно только складывать умножать делить и заполнять нулями - все.
это и есть десятичная, f значит «float».
А, ну вот откудаж мне было знать