Фрагмент Koolinc хорош, если вам нужно такое мощное решение, но если вам нужно его для ограниченного использования, вам лучше написать свой собственный код. Я написал следующую функцию для преобразования строкового шестнадцатеричного представления байтов в число с плавающей точкой:
function decodeFloat(data) {
var binary = parseInt(data, 16).toString(2);
if (binary.length < 32)
binary = ('00000000000000000000000000000000'+binary).substr(binary.length);
var sign = (binary.charAt(0) == '1')?-1:1;
var exponent = parseInt(binary.substr(1, 8), 2) - 127;
var significandBase = binary.substr(9);
var significandBin = '1'+significandBase;
var i = 0;
var val = 1;
var significand = 0;
if (exponent == -127) {
if (significandBase.indexOf('1') == -1)
return 0;
else {
exponent = -126;
significandBin = '0'+significandBase;
}
}
while (i < significandBin.length) {
significand += val * parseInt(significandBin.charAt(i));
val = val / 2;
i++;
}
return sign * significand * Math.pow(2, exponent);
}
В википедии есть подробное объяснение алгоритмов, используемых для преобразования в обоих направлениях для всех форматов с плавающей запятой, и их легко использовать для написания собственного кода. Преобразование из числа в байты должно быть более трудным, потому что сначала вам нужно нормализовать число.