ByteArray的位元組序 Endian

2021-08-27 07:07:26 字數 977 閱讀 8335

flash中的bytearray物件,可以看成是一段記憶體,而該物件的endian屬性決定著將外部資料寫入記憶體的位元組序。

以寫整形為例,如果bytearray物件的endian設定為預設的bigendian,即大端,那麼在寫入乙個4位元組的整型時,它將會先把資料的最高有效位寫入到最低端,最後,資料的最低有效位會被寫入最高端。

所謂最高端與最低端在bytearray物件中可以用它的position屬性來表示,position大的位元組就是大端的位元組。

而最低和最高有效位是對於資料而言的。

按照上面的**建立的bytearray物件,位元組序是大端的,如果我們從頭將這個物件乙個位元組乙個位元組的讀取出來(呼叫bytearray::readunsignedint()方法),那麼我們將會看到如下輸出:

000000ff 00000001 0000000c
去掉注釋後的輸出則為:

ff000000 01000000 0c000000
另外,有時候我們會用乙個bytearray物件寫入另乙個bytearray物件,這個時候位元組序是不影響寫入順序的,被寫入的物件會從做為資料bytearray物件的低position位置,乙個位元組乙個位元組的拷貝,放入自己的內部。

大端位元組序 小端位元組序(網路位元組序 主機位元組序)

大端位元組序 整數的高位位元組儲存在記憶體的低位址處,低位元組儲存在記憶體的高位址處。一般pc大多採用小端位元組序,也稱為主機位元組序。網路上傳輸採用大端位元組序,也稱為網路位元組序。linux中常用轉換函式如下 include uint32 t htonl uint32 t hostlong 無符...

位元組序和網路位元組序

1 位元組序 由於不同的計算機系統採用不同的位元組序儲存資料,同樣乙個4位元組的32位整數,在記憶體中儲存的方式就不同.位元組序分為小尾位元組序 little endian 和大尾位元組序 big endian intel處理器大多數使用小尾位元組序,motorola處理器大多數使用大尾 big e...

位元組序和網路位元組序

1位元組序 由於不同的計算機系統採用不同的位元組序儲存資料,同樣乙個4位元組的32位整數,在記憶體中儲存的方式就不同.位元組序分為小尾位元組序 little endian 和大尾位元組序 big endian intel處理器大多數使用小尾位元組序,motorola處理器大多數使用大尾 big en...