打扰一下 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个字节。

    评论

报告相同问题?

悬赏问题

  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?