gpt4 book ai didi

JavaScript 类型化数组 - 不同的观点 - 2

转载 作者:行者123 更新时间:2023-11-30 08:48:41 25 4
gpt4 key购买 nike

几天前我就此发布了几个问题并得到了一些很好的回复 JavaScript Typed Arrays - Different Views

我的第二个问题涉及两个 View ,缓冲区的 8 位数组和 32 位数组。通过在 8 位中放置 0、1、2、3,我在 32 位中得到 50462976。如前所述,32 位值的原因得到了很好的解释。

我可以用下面的代码实现同样的事情:

var buf = new ArrayBuffer(4);
var arr8 = new Int8Array(buf);
var arr32 = new Int32Array(buf);

for (var x = 0; x < buf.byteLength; x++) {
arr8[x] =
(x << 24) |
(x << 16) |
(x << 8) |
x;
}

console.log(arr8); // [0, 1, 2, 3]
console.log(arr32); // [50462976]

我找不到任何解释此过程机制的内容。似乎是说每个 arr8 元素等于 X 位移 24 个位置或位移 16 个位置或位移 8 个位置或不位移。

这对我来说真的没有意义。如果有人能对此有所了解,我将不胜感激。谢谢,

最佳答案

基本上,你的缓冲区是这样的:

00000000 00000001 00000010 00000011

当作为 Int8Array 处理时,它会单独读取每个 8 位组:0、1、2、3

当作为 Int32Array 处理时,它读取 32 位组(即 4 个 8 位组)以获得 50462976

关于JavaScript 类型化数组 - 不同的观点 - 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19774881/

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