作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想将像 26,4
这样的浮点值转换成字节数组。类似于:[51,51,-45,65]
。另一个示例:32,2
> [-51, -52, 0, 66]
。
我可以在 Arduino C++ 和 Python 中完成,但我不知道如何在 JavaScript 中完成。
我的 HTML 页面中有一个输入字段,我想在其中写入我的浮点值并在将其发送到 Python 脚本之前对其进行解码。
这可能吗?
最佳答案
首先创建一个 Float32Array
,它是实际字节缓冲区 (ArrayBuffer
) 之上的 View 。我们可以在单个操作中分配缓冲区和 View :
var farr = new Float32Array(2); // two indexes each 4 bytes
存储 float 。这些将以 IEEE-754 格式存储:
farr[0] = 26.4;
farr[1] = 32.2;
现在我们可以为底层缓冲区添加另一个 View ,这次是带符号的 8 位 View :
var barr = new Int8Array(farr.buffer); // use the buffer of Float32Array view
console.log(barr);
// -> 51,51,-45,65,-51,-52,0,66
var farr = new Float32Array(2); // two indexes each 4 bytes
farr[0] = 26.4;
farr[1] = 32.2;
var barr = new Int8Array(farr.buffer); // use the buffer of Float32Array view
console.log(barr);
document.querySelector("div").innerHTML = barr[0]+","+barr[1]+","+barr[2]+","+barr[3]+","+barr[4]+","+barr[5]+","+barr[6]+","+barr[7];
<div></div>
关于javascript - 如何将 float 转换为字节数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29629597/
我是一名优秀的程序员,十分优秀!