LINUX.ORG.RU

История изменений

Исправление 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».

А, ну вот откудаж мне было знать