javascript - 如何将 "uint16"值转换为半精度 float (即 "float16")?

标签 javascript binary

我必须解压一个二进制文件,其中某些值是半精度 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/

相关文章:

javascript - 根据属性名称对数组中的对象进行分组

python - 如何对文本文件执行二进制搜索以在 python 中搜索关键字?

python - 挣扎于二进制数组 : python

c++ - 大整数被误读/误写入二进制文件

text - 二进制协议(protocol)与文本协议(protocol)

javascript - Express.js 响应发送回调

javascript - CSS Animation Sidemenu(将其用作表格的筛选器 Pane )

javascript - JQuery: $(this).text ('some_text' );导致我的链接有边框

c - c中的二进制转十进制

javascript/firebase - 使用 for 循环触发时按钮类不起作用