我似乎不明白Uint32Array
。根据我所读到的内容,Uint8Array
我可以在数组(Uint8Array([16])
或Uint8Array([96,56])
)中输入一个数字,结果就是这样。但是,当我尝试对更大的数字进行相同操作时Uint32Array([21640])
,似乎会截断它。在21640应该等于5488(十六进制)的地方,我只有88。这实际上如何工作?
编辑:阐述
我也试图将多个ArrayBuffer连接在一起。如果我没记错的话,readAsArrayBuffer
会产生一个Uint8Array
,并且我尝试使用https://gist.github.com/72lions/4528834在该32位数字后面附加
有太多的信息和示例,Uint8Array
而几乎没有什么Uint32Array
使我认为这32个值中的一个会像8个值中的4个一样存储一个值。
无符号的8位数字的最大值是255。根据os / cpu,更大的数字将被截断或翻转。如果要在8位数组中转换32位数字,请尝试如下操作。
var number = 21640;
var byte1 = 0xff & number;
var byte2 = 0xff & (number >> 8);
var byte3 = 0xff & (number >> 16);
var byte4 = 0xff & (number >> 24);
var arr1 = Uint8Array([byte1,byte2,byte3,byte4]);
创建数组时,只需反转字节的顺序即可,具体取决于您需要的是小端字节序还是大端字节序。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句