JavaScript类型化数组发生了看不懂的结果!请求哪位大神帮忙解答一下下!谢谢你啦!

这个Uint32就是用的32进制存的吗?Uint16就是用的16进制存的吗?

第一种先使用Uint32Array再使用Uint16Array操作同一个数组,输出的结果为什么是1 0 2 0 3 0 4 0 ?

var buffer = new ArrayBuffer(16);
var array = new Uint32Array(buffer);
for(var i = 0; i < array.length;++i){
    array[i] = i+1;
    document.write(array[i]+"  "); //1 2 3 4 
}

document.write("<br>");

var array2 = new Uint16Array(buffer);
for(var i = 0; i < array2.length;++i){
    document.write(array2[i]+"  "); //1 0 2 0 3 0 4 0 
}

第二种先使用Uint16Array再使用Uint32Array操作同一个数组,输出的结果为什么是131073 262147 393221 524295 ?

var buffer = new ArrayBuffer(16);
var array = new Uint16Array(buffer);
for(var i = 0; i < array.length;++i){
    array[i] = i+1;
    document.write(array[i]+"  "); //1 2 3 4 5 6 7 8 
}

document.write("<br>");

var array2 = new Uint32Array(buffer);
for(var i = 0; i < array2.length;++i){
    document.write(array2[i]+"  "); //131073 262147 393221 524295 
}
  • 大神请你将详细点!可以吗?哈哈


牧羊人nacy
浏览 698回答 1
1回答

临摹微笑

这个Uint32就是用的32进制存的吗?Uint16就是用的16进制存的吗? 错 计算机内部都是二进制存的(虽然可以用10或者16进制显示给你看) Uint32使用32个二进制位(bit)存储,U表示没有符号。所以可以表示的范围是00000...0~1111...1(32个0到32个1),对应的10进制是0~4294967295 Uint16使用16个二进制位表示,所以是0~65535 因为8bit=1byte(字节),所以也可以说分别是4个字节和2个字节。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript