JSFiddle - React, Tailwind, and code Playground
by Sergei Marochkin
JavaScript
//string may be raw data(simple text) with chars(0 - 255) or
//hex string '0xffffffff' 4 byte length
var str = '0x3E922afd';
function parseFloat(str) {
var float = 0, sign, order, mantiss,exp,
int = 0, multi = 1;
if (/^0x/.exec(str)) {
int = parseInt(str,16);
}else{
for (var i = str.length -1; i >=0; i -= 1) {
if (str.charCodeAt(i)>255) {
console.log('Wrong string parametr');
return false;
}
int += str.charCodeAt(i) * multi;
multi *= 256;
}
}
sign = (int>>>31)?-1:1;
exp = (int >>> 23 & 0xff) - 127;
mantiss = ((int & 0x7fffff) + 0x800000).toString(2);
for (i=0; i<mantiss.length; i+=1){
float += parseInt(mantiss[i])? Math.pow(2,exp):0;
exp--;
}
return float*sign;
}
console.log ( parseFloat(str));