我必须解压一个二进制文件,其中某些值是半精度 float (即 float16
)。
我使用规范API dataView.getUint16(0)
从二进制流中读取它.
如何转换 uint16
中的数字格式back to
使用 JavaScript 的 float16` 格式?
最佳答案
Javascript 中的所有数字变量都被视为 64 位 float ( double )。
一旦您将其从 DataView 读取到变量中,它将采用这种形式。
DataView 对象上的 set*
方法允许您使用各种打包形式在 ArrayBuffer 中设置字节:
dv.setUint16(0, 12);
dv.getUint16(0); // >>> 12
但是你自己夹紧它时必须小心:
dv.setUint16(0, -12);
dv.getUint16(0); // >>> 65524
对于有符号 int16:
dv.setInt16(0, -12);
dv.getInt16(0); // >>> -12
关于javascript - 如何将 "uint16"值转换为半精度 float (即 "float16")?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40775670/