1、后端将一个long型数据转变为64位二进制,通过websocket传给前端,前端接收到一个ArrayBuffer对象,用getFloat64读取内存的数据,转为整数,可是发现与后端定义的数据不一致。
2、例如后端传的值是200000000001,前端接收到的为一个8字节的ArrayBuffer,用Int8Array取出,得到一个8位有符号整数[0, 0, 0, 46, -112, -19, -48, 1],并且取到的值与后端提供的二进制是一致的。
3、数据转换如下:
4、后端返回的ArrayBuffer、转化的Int8Array数组以及用Float64Array得到的值:
function DecodeFloat64Array(Float64){
}