檢查系統是大端還是小端模式
阿新 • • 發佈:2018-12-09
在計算機系統中,規定:每個地址單元都會對應一個位元組(8個bit),但是,在c語言中,除了有一個位元組(8個bit)的char,也有兩個位元組(16個bit)的short,也有四個位元組(32個bit)的long(在不同的編譯器下可能不同)。對於16位或者32位的處理器,即就是大於8位的處理器,由於暫存器的寬度大於一個位元組,那麼就存在如何將一個多位元組的變數的資料如何存放的問題——所以,就有了大小端之分。
首先,應該明確的是:
資料有高位和低位之分 地址有低地址和高地址之分
大小端的理解:
小端:將資料的低位存放在低地址處,將資料的高位存放在高地址處。 大端:將資料的低位存放在高地址處,將資料的高位存放在低地址處。
所以可以定義一個int變數,將其地址強制為char *型地址,檢測該地址中的資料若是int變數的最低位元組,則是小端機,反之則為大端機。程式碼如下:
1 2 3 4 5 6 7 |
|