Javascript 十六进制到浮点的转换-JS中的大端(ABCD)
我需要将这个十六进制“46b76833”转换成浮点,我需要得到这个值23476.1 我写了一个代码得到十六进制和其他一切,但这一步我不知道怎么做,有人能帮我吗?提前谢谢 我试过这样的东西,但没用Javascript 十六进制到浮点的转换-JS中的大端(ABCD),javascript,node.js,Javascript,Node.js,我需要将这个十六进制“46b76833”转换成浮点,我需要得到这个值23476.1 我写了一个代码得到十六进制和其他一切,但这一步我不知道怎么做,有人能帮我吗?提前谢谢 我试过这样的东西,但没用 function hexToFloat(hex) { var s = hex >> 31 ? -1 : 1; var e = (hex >> 23) & 0xFF; var rez = s * (hex & 0x7fffff | 0x800
function hexToFloat(hex) {
var s = hex >> 31 ? -1 : 1;
var e = (hex >> 23) & 0xFF;
var rez = s * (hex & 0x7fffff | 0x800000) * 1.0 / Math.pow(2, 23) * Math.pow(2, (e - 127));
return rez
}
就快到了,我们只需要将十六进制字符串转换成数字,然后再转换成浮点 MSB是符号,以下8位是指数,最后23位表示数字的分数 这是一个IEEE单精度浮点数,有更多细节 函数hexStringToFloat(hexString){ 常量hex=parseInt(十六进制字符串,16); 常数符号=十六进制>>31?-1:1; 常数指数=(十六进制>>23)&0xFF; 返回符号*(十六进制和0x7fffff | 0x800000)*1.0/数学功率(2,23)*数学功率(2,(指数-127)); }
log(“结果:”,hexStringToFloat(“46b76833”)代码>您就快到了,我们只需要将十六进制字符串转换为数字,然后再转换为浮点 MSB是符号,以下8位是指数,最后23位表示数字的分数 这是一个IEEE单精度浮点数,有更多细节 函数hexStringToFloat(hexString){ 常量hex=parseInt(十六进制字符串,16); 常数符号=十六进制>>31?-1:1; 常数指数=(十六进制>>23)&0xFF; 返回符号*(十六进制和0x7fffff | 0x800000)*1.0/数学功率(2,23)*数学功率(2,(指数-127)); }
log(“结果:”,hexStringToFloat(“46b76833”)代码>非常感谢,这很有效!所以我只错过了parseInt转换器,你让我开心!太好了,很高兴能帮上忙!!非常感谢,这很有效!所以我只错过了parseInt转换器,你让我开心!太好了,很高兴能帮上忙!!