美文网首页
JavaScript中arraybuffer

JavaScript中arraybuffer

作者: guoss | 来源:发表于2017-06-22 15:11 被阅读0次

    读取文件的过程需要二进制,但是JavaScript中没有明确的二进制字节位的概念,类型化的数组概念就是二进制传输过程的接口。

    var buffer=new ArrayBuffer(4);//长度为四个字节
    var a=new Uint8Array(buffer);
    a[0]=01;
    a[1]=02;
    a[2]=03;
    a[3]=04;
    定义了4个字节长度的buffer,内容为[0x01,0x02,0x03,0x04]
    var b=new Uint16Array(buffer);
    console.log(b);//513,1027
    

    输出结果我刚开始真的是百思不得其解,首先uint的方法主要用于arraybuffer中的内容不能在浏览器界面显示使用,每个字节的长度8位,然后定义16位的b,那么读取的过程就是a[3]a[2],a[1]a[0],读取的结果用十进制的形式表示,所以也就有了接下来的各种类型转换

    new Uint8Array;//8位无符号的整数
    new Uint16Array;//16位无符号的整数
    new Uint32Array;//32位无符号的整数
    new Int8Array;//8位有符号的整数
    new Int16Array;//16位有符号的整数
    new Int32Array;//32位有符号的整数
    

    但是在转换16位或者32位时,控制台总是报错,但是8位不会报错,举个例子,假设buffer的length为105,就是105个字节,8位的读就是一次读取一个字节,16位一次读两个字节,读到最后时候就剩一个字节,就报错了,32位也是如此。所以我一般都会选择8位。

    相关文章

      网友评论

          本文标题:JavaScript中arraybuffer

          本文链接:https://www.haomeiwen.com/subject/jddfcxtx.html