gpt4 book ai didi

javascript - 为什么Big Endian默认是DataView?

转载 作者:行者123 更新时间:2023-12-05 07:34:39 25 4
gpt4 key购买 nike

谁能解释一下,为什么 DataView 使用字节顺序 Big Endian?当我们的计算机使用 Little Endian 工作时。还有 ARM 处理器。

Uint32Array() 这样的类型化数组已经使用了 Little Endian。我认为这是正确的。

// DataView (Big Endian)
const dataview = new DataView(new ArrayBuffer(4));
dataview.setUint32(0, 42);
console.log(new Uint8Array(dataview.buffer).toString());
// result: 0,0,0,42

// Typed Array (Little Endian)
const typearray = new Uint32Array([42]);
console.log(new Uint8Array(typearray.buffer).toString());
// result: 42,0,0,0

我希望数字类型采用小端法。这是不一致的。我知道 litleEndian 的 DataView 方法的可选参数。但我的问题是:为什么这不是默认设置的?

最佳答案

这是 ECMAscript 标准定义的 setUint32 方法的原型(prototype):

24.2.4.20 DataView.prototype.setUint32(byteOffset,值 [,littleEndian])(https://www.ecma-international.org/ecma-262/6.0/#sec-dataview-constructor)。

值存储为小端还是大端由可选的第三个参数定义,其默认值标准定义为false(存储为大端)。

Big endian 是所有 TCP/IP 网络协议(protocol)的默认字节顺序,它并不罕见。

关于javascript - 为什么Big Endian默认是DataView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50025645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com