首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nodejs Uint8Array,Uint16Array,Uint32Array

Nodejs Uint8Array,Uint16Array,Uint32Array
EN

Stack Overflow用户
提问于 2022-01-16 21:31:12
回答 1查看 1.5K关注 0票数 1

我试图弄清楚如何使用int中的缓冲区表示。简单代码

代码语言:javascript
复制
var buffer = Buffer.alloc(4, 'a');
var interface16 = new Uint16Array(buffer);
var interface8 = new Uint8Array(buffer);
console.log(interface16);
console.log(interface8);

为什么日志输出相同的数组(按值和长度)?毕竟,我正在以每一个整数1字节和2个字节的形式进行数据表示。至少手册上说,Uint8Array -从缓冲区中取出一个字节,我认为这是一个0和1s的序列,在本例中是32 (4* 8)。也就是说,我可以忍受这样一个事实,那就是它将是一个包含4个元素的数组。但是,对于一个整数,Uint16Array需要两个字节,也就是说,数字必须不同,数组的大小是2。为了直观地看到差异,我搞错了什么以及传递给这些构造函数的缓冲区是什么?我怀疑在任何情况下,返回的数组将与字节数相同,或者是控制台如何生成输出的问题。可能吧。但是没有足够的知识来理解为什么。感谢您的关注。

如果你也在这个问题上直接为一些非脑力充沛的文献提供建议,那就太好了。

EN

回答 1

Stack Overflow用户

发布于 2022-01-16 22:19:54

首先,创建一个内部为4a的缓冲区。

然后,使用缓冲区调用此函数:

文档说:当使用对象参数调用new Uint16Array(object);时,创建一个新的类型化数组,就像由TypedArray.from()方法创建的那样。

见更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/from

它使用缓冲区的每个字节创建一个4 uint16的数组。

A= 0x61 = 97,然后得到4个97。

下面是成功缓冲区到uint16转换convert nodejs buffer to Uint16Array的堆栈溢出

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70734367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档