打扰一下 2018-03-18 13:58 采纳率: 0%
浏览 616
已结题

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 
}

大神请你将详细点!可以吗?哈哈

  • 写回答

3条回答 默认 最新

  • threenewbee 2018-03-18 16:12
    关注

    这个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个字节。

    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!