日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

理解大端和小端

發布時間:2024/6/30 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 理解大端和小端 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
教你快速理解大端和小端 學習底層編程或逆向的童鞋,肯定對這兩個名詞并不陌生吧?!今天就給大家介紹一下這兩個概念. 科普: 大端和小端,老外叫?Big-Endian??Little-Endian,其實指的都是同一個東東!在計算機界,?表示數據在存儲器中的存放順序.?不同的?CPU、操作系統對待數據的存儲方式各有不同,但一般常見的操作系統都是小端,而通訊協議則是大端。 但并不是說系統是小端形式存儲,文件就一定要采用小端的形式,不同的應用程序對于自身數據的存儲方式也各有千秋(自家數據愛咋放咋放,有些還打亂了加密呢),比如: *Adobe PS --?大端 *BMP --?小端 *GIF --?小端 *JPEG --?大端 *MacPaint --?大端 *RTF --?小端 那么小端和大端有什么區別呢?舉個栗子大家就明了了: 比如?0x12345678?這個數: *大端法在內存中按字節依次存放為:12 34 56 78 *小端法在內存中按字節依次存放為:78 56 34 12 解釋: 大端:較高的有效字節存放在較低的存儲器地址,較低的有效字節存放在較高的存儲器地址。 比如整型變量?0x12345678??4?個字節,那么根據內存地址從小到大它們的存放方式如下:
?? 數據 ?? 0x12 0x34 0x56 0x78
地址 0x10000000 0x10000001 0x10000002 0x10000003
小端:較高的有效字節存放在較高的的存儲器地址,較低的有效字節存放在較低的存儲器地址。所以整型變量0x12345678?根據內存地址從小到大它們的存放方式如下:
?? 數據 ?? 0x78 0x56 0x34 0x12
地址 0x10000000 0x10000001 0x10000002 0x10000003
轉換: 我們發現一個字節是可以存放兩個十六進制的數字的(一個字節最大可以存放的數是?0xFF),那如果給你一個十進制數(比如?112233),如何快速地知道它在內存中是如何存放的呢? l??大端法很容易,直接將它轉換成十六進制,然后依次存放即可:0x0001B669 l??小端法則比較麻煩,步驟依次如下: *轉換成十六進制數(0x0001B669 *將八位數字的低四位和高四位互換(0xB6690001 *在低四位和高四位中,分別進行兩兩互換(0x69B60100 如何檢測你的機器是大端還是小端? 前邊已經說過,?常見的個人電腦大多數都是使用小端,?但是我們都是我改變世界的程序猿,?不妨考慮小如何使用代碼來分辨? 其實不難,?通過將int強轉為插入單字節,?判斷其實儲存位置: #include <stdio.h> int main() { int a = 0x2233; char *b =(char *)&a; if (*b ==0x22) { printf("大端!\n"); } else { printf("小端!\n"); } return 0; } <ignore_js_op>

轉載于:https://www.cnblogs.com/yejianyong/p/7112730.html

總結

以上是生活随笔為你收集整理的理解大端和小端的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。