我想将像26,4
这样的浮点值转换为字节数组。类似于:[51,51,-45,65]
。另一个例子:32,2
> [-51, -52, 0, 66]
。
我可以在Arduino C ++和Python中实现,但我不知道如何在JavaScript中实现它。
我的HTML页面中有一个输入字段,我希望在将其发送到Python脚本之前编写浮点值并对其进行解码。
有可能吗?
答案 0 :(得分:6)
首先创建一个Float32Array
,它是一个在实际字节缓冲区(ArrayBuffer
)之上的视图。我们可以在一个操作中分配缓冲区和视图:
var farr = new Float32Array(2); // two indexes each 4 bytes
存储浮点数。这些将以IEEE-754格式存储:
farr[0] = 26.4;
farr[1] = 32.2;
现在我们可以为底层缓冲区添加另一个视图,这次签名为8位视图:
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>
&#13;