首页 > 解决方案 > 如何在javascript中将原始数据转换为int32

问题描述

data = [0, 4, -109, -31]我从 modbus那里得到这个,我知道这个data = 300001,但我不知道如何正确转换它来得到那个300001. 我已经尝试了很多网上找到的方法,但我没有得到它的工作。感谢您的任何帮助

编辑:据我所知0,需要移动244移动16-109 (256-109 = 147)所以它会147并且需要移动,8最后一个-31 (256-31 = 225)我们按原样移动。这么快回顾一下data = [0, 4, 147, 225]0 * 2^24 + 4 * 2^16 + 147 * 2^8 + 225 = 300001 现在这需要编纂。在js中有什么合适的方法吗?

标签: javascriptdata-conversion

解决方案


您需要一个带有缓冲区的数据视图并设置字节

var data = [0, 4, -109, -31]

// Create a data view of a buffer
var view = new DataView(new ArrayBuffer(4));

// set bytes
data.forEach((v, i) => view.setInt8(i, v));

var num = view.getInt32(0);
console.log(num);


推荐阅读