大端小端講解
小端,也稱低尾端,大端,也稱高尾端。首先弄清楚三個概念:
1)什麼是端/尾端:大端和小端裡面的端實際上是尾端的簡寫,就是尾巴的意思,很多動物尾巴被砍掉不會危及生命,和砍頭相比,是小傷,一個bit序列,尾巴部分錯了,對整體的值影響最小,因此也叫做LSB(Least Significant Bit),與之對應的,就是頭,最重要的部位,叫做MSB(Most Significant Bit),總結下,端/尾端的意思就是LSB。
2)什麼是小(低)/大(高):指的是記憶體地址,在前面的是低地址,在後面的是高地址。
弄清上面兩個概念後,總結下:
1)什麼是小端:直譯:端放在小地址。意譯:LSB放在低地址。
2)什麼是大端:直譯:端放在大地址。意譯:LSB放在高地址。
3)總結1)2),看是大端還是小端,你實際是在看什麼:很簡單,你實際在看LSB是放在高地址還是低地址上。
舉個例子:十進位制數字12496,以小端(低尾端)存放和以大端(高尾端)存放分別是什麼樣子的。
12496這個數字,用二進位制表示是:00110000 11010000,兩個位元組就可以表示了,用十六進位制表示:0x30 0xD0。
二進位制表示和十六進位制表示是等價的,00110000對應0x30,11010000對應0xD0,下面以十六進位制來說明。
首先要弄清楚哪個位元組是LSB,先澄清一下,這裡的B你把它理解成byte,以位元組為單位,0xD0是LSB,因此就很清楚了,0xD0放在低地址就是小端,放在高地址就是大端:
小端儲存:0xD0 0x30。
大端儲存:0x30 0xD0。
你可以發現,大端儲存的位元組序列和原始表示的位元組序列是一致的,因此大家通常也說,大端更符合人的直觀表示,小端還得逆序排列一下。
另外,補充一點,memcpy這個函式,是大端儲存。還是上面的例子:
unsigned short a=12496;
unsigned char buff[2]={0};
memcpy(buff,&a,sizeof(int));
buff裡面的位元組序列會是:0x30 0xD0。
相關文章
- 大端序和小端序
- golang之大端序、小端序Golang
- 大端和小端的問題
- CRC 自動判斷大端 小端
- C# 中大端序與小端序C#
- 大端序、小端序、網路位元組序
- 位元組序探析:大端與小端的比較
- 計算機系統中的大端模式和小端模式計算機模式
- 小i機器人IPO:棄C端投B端,故事講到元宇宙機器人元宇宙
- Retrofit2與服務端例項講解服務端
- 前後端分離-根據程式碼講解思路後端
- 相信大家在閱讀有關通訊資料傳輸、PLC資料儲存等技術文件時,經常會碰到“Big-Endian”(大端對齊)與Little-Endian(小端對齊)術語。很多朋友不理解大端和小端模式,本文給大家寫一下此知識點。模式
- 超詳細講解H5移動端適配H5
- Linux雲端計算教程全套影片合集:CMD指令講解Linux
- Linux雲端計算教程全套影片合集:WORKDIR 指令講解Linux
- 恆訊科技講解:如何搭建雲端計算平臺?
- 從零講解搭建一個NIO訊息服務端服務端
- 微信小程式WXML頁面常用語法(講解+示例)微信小程式XML
- 雲端計算教程學習入門影片課件:雲端計算終端技術講解
- 簡單講講小程式外掛是什麼
- 雲端計算學習素材、課件,msyql知識點講解
- 相親專案講課(講解)
- 全網最全,講解最細的ps日常操作小技巧,Photoshop教程
- 如何優雅地尋找質數?——碼小會Python案例講解Python
- 雲端計算學習路線圖講解:想學雲端計算怎麼入門?
- 雲端計算開發學習教程,雲端計算基礎架構實現講解架構
- Docker 映象講解Docker
- rpm命令講解
- Swift 常量講解Swift
- let _this = this;作用講解
- 講解運算子
- 通俗講解 HTTPSHTTP
- 一文弄懂 CORS 跨域(前端+後端程式碼例項講解)CORS跨域前端後端
- 雲端計算教程學習入門影片課件:Load Balance講解
- 雲端計算教程學習入門影片課件:雲端計算通訊協議講解協議
- 影片解碼基礎講解
- 微信小程式開發精講微信小程式
- 美顏SDK小講堂——影像特徵特徵