大端和小端的問題
大端和小端的問題
對於整型、長整型等資料型別,Big endian 認為第一個位元組是最高位位元組(按照從低地址到高地址的順序存放資料的高位位元組到低位位元組);而 Little endian 則相反,它認為第一個位元組是最低位位元組(按照從低地址到高地址的順序存放據的低位位元組到高位位元組)。
例如,假設從記憶體地址 0x0000 開始有以下資料:
0x0000 0x0001 0x0002 0x0003
0x12 0x34 0xab 0xcd
如果我們去讀取一個地址為 0x0000 的四個位元組變數,若位元組序為big-endian,則讀出結果為0x1234abcd;若位元組序為little-endian,則讀出結果為0xcdab3412。
如果我們將0x1234abcd 寫入到以 0x0000 開始的記憶體中,則Little endian 和 Big endian 模式的存放結果如下:
地址 0x0000 0x0001 0x0002 0x0003
big-endian 0x12 0x34 0xab 0xcd
little-endian 0xcd 0xab 0x34 0x12
一般來說,x86 系列 CPU 都是 little-endian 的位元組序,PowerPC 通常是 big-endian,網路位元組順序也是 big-endian還有的CPU 能通過跳線來設定 CPU 工作於 Little endian 還是 Big endian 模式。
對於0x12345678的儲存:
小端模式:(從低位元組到高位元組)
地位地址 0x78 0x56 0x34 0x12 高位地址
大端模式:(從高位元組到低位元組)
地位地址 0x12 0x34 0x56 0x78 高位地址
相關文章
- 大端序和小端序
- 大端小端講解
- golang之大端序、小端序Golang
- 計算機系統中的大端模式和小端模式計算機模式
- CRC 自動判斷大端 小端
- C# 中大端序與小端序C#
- 位元組序探析:大端與小端的比較
- 大端序、小端序、網路位元組序
- Git clone 的小問題Git
- 小程式白屏問題和記憶體研究記憶體
- 小程式問題
- 小鳥雲管理終端(VNC連線)常見問題VNC
- 關於移動端小圖示模糊問題的解決方法教程
- WKWebView的Cookie問題小記WebViewCookie
- 關於DrawerLayout的小問題
- 兩個小問題深入淺出List的效能問題
- 手機端的適配問題
- 一個小問題
- 小問題集錦
- 工作遇到的問題小記(一)
- jupyter lab 的三個小問題
- 小程式 require 引入空包的問題UI
- 快取 Laravel 模型的小問題快取Laravel模型
- 使用git add 遇到的小問題Git
- vue 元件(component)命名的小細節問題(大小寫問題)Vue元件
- vue請求後端資料和跨域問題Vue後端跨域
- Java基礎、jvm 程式碼塊和構造方法的小問題JavaJVM構造方法
- Oracle如何診斷遠端訪問資料庫慢/超時等問題小結Oracle資料庫
- 移動端iphoneX的適配問題iPhone
- 移動端問題整理
- 一個nvcc編譯的小問題編譯
- 小程式遇到的一些問題
- 解決AI的小資料問題AI
- pl/sql developer的一個小問題SQLDeveloper
- Redis學習的幾個小問題Redis
- 百度小程式遇到的問題
- Hbase問題小結(一)
- 相信大家在閱讀有關通訊資料傳輸、PLC資料儲存等技術文件時,經常會碰到“Big-Endian”(大端對齊)與Little-Endian(小端對齊)術語。很多朋友不理解大端和小端模式,本文給大家寫一下此知識點。模式