将十六进制转换为 float32_LE
convert hex to float32_LE
希望你和你的家人一切安好。
我很难将十六进制转换为 float32_LE。我尝试了一些不同的在线 JavaScript 编辑器,但效果不佳。
如果有人知道如何找到将十六进制转换为 float32_LE 的最佳资源。我提前感谢。
我有十六进制值 = 0xcf91873b。它应该是 0.004137255。我找到了直接对话,但我需要一些背景资料。所以我可以在代码中使用它。
谢谢
亲切的问候。
DataView.prototype.getFloat32()
方法允许您使用无符号整数和 return 浮点表示。第一个参数是byteOffset
;这应该是 0
。该方法还需要一个 littleEndian
参数;我们想将其设置为 true
.
最终解压缩的 float 32 值为 0.004137254785746336
编辑:我添加了解码多个十六进制值的功能。
//
const parseFloat = (hex, littleEndian) => {
const
octets = Math.floor(hex.replace(/^0x/, '').length / 2),
dataView = new DataView(new ArrayBuffer(octets));
dataView.setUint32(0, parseInt(hex, 16));
return dataView.getFloat32(0, littleEndian);
}
const ui = {
input: document.querySelector('#input'),
output: document.querySelector('#output'),
convert: document.querySelector('#convert')
};
const handleConvert = (e) => {
ui.output.value = ui.input.value.trim().split(/\s+/).map(hex =>
parseFloat(hex, true)).join(' ');
};
ui.convert.addEventListener('click', handleConvert);
body,html{width:100%;height:100%;margin:0;padding:0;background:#000;color:#0f0}
body{display:flex;flex-direction:column;justify-content:center;align-items:center}
textarea{flex:1;margin:.5em;width:calc(100% - 2em);font-family:monospace;border:thin solid #0f0;background:#000;color:#0f0;resize:none}
button{margin:0;background:#000;color:#0f0;border:thin solid #0f0;padding:.5em}
button:hover{background:#0f0;color:#000;cursor:pointer}
<textarea id="input">0xcf91873b 0xcf91873b</textarea>
<button id="convert">Convert</button>
<textarea id="output"></textarea>
希望你和你的家人一切安好。 我很难将十六进制转换为 float32_LE。我尝试了一些不同的在线 JavaScript 编辑器,但效果不佳。 如果有人知道如何找到将十六进制转换为 float32_LE 的最佳资源。我提前感谢。 我有十六进制值 = 0xcf91873b。它应该是 0.004137255。我找到了直接对话,但我需要一些背景资料。所以我可以在代码中使用它。
谢谢 亲切的问候。
DataView.prototype.getFloat32()
方法允许您使用无符号整数和 return 浮点表示。第一个参数是byteOffset
;这应该是 0
。该方法还需要一个 littleEndian
参数;我们想将其设置为 true
.
最终解压缩的 float 32 值为 0.004137254785746336
编辑:我添加了解码多个十六进制值的功能。
//
const parseFloat = (hex, littleEndian) => {
const
octets = Math.floor(hex.replace(/^0x/, '').length / 2),
dataView = new DataView(new ArrayBuffer(octets));
dataView.setUint32(0, parseInt(hex, 16));
return dataView.getFloat32(0, littleEndian);
}
const ui = {
input: document.querySelector('#input'),
output: document.querySelector('#output'),
convert: document.querySelector('#convert')
};
const handleConvert = (e) => {
ui.output.value = ui.input.value.trim().split(/\s+/).map(hex =>
parseFloat(hex, true)).join(' ');
};
ui.convert.addEventListener('click', handleConvert);
body,html{width:100%;height:100%;margin:0;padding:0;background:#000;color:#0f0}
body{display:flex;flex-direction:column;justify-content:center;align-items:center}
textarea{flex:1;margin:.5em;width:calc(100% - 2em);font-family:monospace;border:thin solid #0f0;background:#000;color:#0f0;resize:none}
button{margin:0;background:#000;color:#0f0;border:thin solid #0f0;padding:.5em}
button:hover{background:#0f0;color:#000;cursor:pointer}
<textarea id="input">0xcf91873b 0xcf91873b</textarea>
<button id="convert">Convert</button>
<textarea id="output"></textarea>