<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      [JS] ArrayBuffer、DataView和TypedArray

      JavaScript 中數組元素的數據類型是不固定的,number 類型可以是整數也可以是浮點數。這種性質與其它常見語言中的定型數組很不一樣,導致不同語言編寫的程序在交換數據的時候,需要花費很多時間在數據轉換上。

      ECMAScript 后來引入了定型數組 TypedArray。TypedArray并不是一個實際存在的數據類型,而是一系列定型數組類型的統稱,它包含了 Int8ArrayUint8ArrayInt16ArrayUint16ArrayFloat32Array等等。

      這些定型數組只是一種“視圖”,通過一種指定的方式解讀內存中的二進制數據。

      ArrayBuffer

      在 JavaScript 中,可以通過 ArrayBuffer 預分配內存。

      const buffer = new ArrayBuffer(16);	// 分配 16 個字節
      

      ArrayBuffer 在分配之后就不能再調整大小,可以通過 slice 方法切片出小 buffer。

      ArrayBuffer 的粒度為字節 byte,不是比特 bit。

      ArrayBuffer 不能直接讀寫,要通過視圖讀寫。視圖指的是 DataView 或者 TypedArray。

      ArrayBuffer 存儲的是二進制,只是一堆數據,但是數據表達了什么信息是未定義的。我們需要一種“解讀方式”,按照一定的規定,才能解讀出信息。不同的解讀方式可以解讀出不同的信息。這里的解讀方式就是視圖,也就是 DataView 或者 TypedArray。

      如下圖:

      image-20240829151645496

      TypedArray

      定型數組用于指定一種方式來讀寫一塊buffer。

      常見的類型有:

      ElementType 字節 說明 等價的C類型
      Int8 1 8位有符號整數 signed char
      Uint8 1 8位無符號整數 unsigned char
      Int16 2 16位有符號整數 short
      Uint16 2 16位無符號整數 unsigned short
      Int32 4 32位有符號整數 int
      Uint32 4 32位無符號整數 unsigned int
      Float32 4 32位IEEE-754浮點數 float
      Float64 8 64位IEEE-754浮點數 double

      創建定型數組的時候,可以指定一個 ArrayBuffer 對象,那么定型數組實例會基于已存在的內存空間創建。

      如果不指定已有的 ArrayBuffer 對象,則需要指定定型數組的長度,會自動在內存中分配內部數組緩沖區。

      DataView

      TypedArray是定型數組,在指定類型之后,就只能以固定大小的“窗口”來觀察二進制讀出一個數字來。

      而 DataView 是一種更靈活的 buffer 視圖,它可以通過指定偏移量和 elementType 在 buffer 中的任意位置讀寫一塊數據。

      它的特點有:

      • 必須指定 ArrayBuffer 實例才能創建 DataView 實例。
      • 可以指定字節序。
      • 讀寫操作超出邊界時,會報錯 RangeError。
      image-20240829154621788

      應用場景

      ArrayBuffer 的關鍵字是二進制通信

      常見的應用場景如下

      • 處理二進制文件: 讀取、修改、生成二進制文件(如圖像、音頻、視頻等)。
      • WebSocket 數據傳輸: 傳輸二進制數據,如視頻流、音頻數據等。
      • WebGL 與圖形處理: 存儲和傳遞圖形數據到 GPU,處理頂點、顏色值等。
      • 音頻處理: 生成或修改音頻數據,通過 Web Audio API 進行處理。
      posted @ 2024-08-29 15:55  feixianxing  閱讀(256)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 久久综合给合久久狠狠狠| 国产精品一区二区不卡视频| 日韩精品成人网页视频在线| 一区二区不卡国产精品| 国产精品亚洲二区在线播放| 九九在线精品国产| 福海县| 亚洲色偷偷偷网站色偷一区| 麻豆国产成人AV在线播放| 猫咪www免费人成网站| 中文字幕国产精品第一页| 国产日韩一区二区在线看| 一本色道国产在线观看二区| 国产成人剧情AV麻豆果冻| 亚洲精品一品二品av| 色二av手机版在线| 国产稚嫩高中生呻吟激情在线视频 | 亚洲国产精品无码一区二区三区| 四虎国产精品永久在线国在线| 亚洲熟女乱色综合亚洲图片| 日本高清不卡一区二区三| 9999国产精品欧美久久久久久 | 青青草原国产精品啪啪视频| 亚洲欧美人成网站在线观看看| 亚洲 欧美 影音先锋| 日韩视频一区二区三区视频| 免费无码无遮挡裸体视频在线观看 | 韩国免费a级毛片久久| 精品无码专区久久久水蜜桃| 91热在线精品国产一区| 福利在线视频一区二区| 又大又粗欧美黑人aaaaa片| 成人乱码一区二区三区四区| 人人妻人人狠人人爽天天综合网| 色偷偷亚洲男人的天堂| 久久综合伊人77777| 免费无码VA一区二区三区| 亚洲色欲色欱WWW在线| 久久久久噜噜噜亚洲熟女综合| 国产在线亚州精品内射| 国产999精品2卡3卡4卡|