Azn*_*har 4 javascript floating-point hex
我有一个表示 gps 坐标的浮点值,我喜欢将其转换为 32 位十六进制字符串。
我尝试了此处描述的所有解决方案,但每次都不是我所期望的结果。
例如,大多数“ToHex”函数:
var lat = 45.839152;
console.log(ToHex(lat));
Run Code Online (Sandbox Code Playgroud)
返回我'2d.56d0b30b5aa8'
但我期待结果为“42355b43”,因为大多数转换器返回
你知道我如何在 JavaScript 中得到 '42355b43' 吗?
谢谢 !
您可以TypedArray使用ArrayBufferand获取对象DataView。
然后将值设置为浮点数 32 并将视图读取为值的无符号整数 8 位。
const getHex = i => ('00' + i.toString(16)).slice(-2);
var view = new DataView(new ArrayBuffer(4)),
result;
view.setFloat32(0, 45.839152);
result = Array
.apply(null, { length: 4 })
.map((_, i) => getHex(view.getUint8(i)))
.join('');
console.log(result);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3869 次 |
| 最近记录: |