1. 程式人生 > >大端格式和小端格式儲存的區別

大端格式和小端格式儲存的區別

short int x;

char x0,x1;

x=0x1122;

x0=((char*)&x)[0]; //低地址單元
x1=((char*)&x)[1]; //高地址單元

若x0=0x11,則是大端; 若x0=0x22,則是小端。

-----------

有時候,用C語言寫程式時需要知道是大端模式還是小端模式?所謂的大端模式,是指資料的低位儲存在記憶體的高地址中,而資料的高位,儲存在記憶體的低地址中;所謂的小端模式,是指資料的低位儲存在記憶體的低地址中,而資料的高位儲存在記憶體的高地址中。為什麼會有大小端模式之分呢?這是因為在計算機系統中,我們是以位元組為單位的,每個地址單元都對應著一個位元組,一個位元組為8bit。但是在C語言中除億bit的char之外,還朿6bit的short型,32bit的long型(要看具體的編譯器),另外,對於位數大億位的處理器,例如16位或耿2位的處理器,由於暫存器寬度大於一個位元組,那麼必然存在著一個如果將多個位元組安排的問題。因此就導致了大端儲存模式和小端儲存模式。例如一丿6bit的short型x,在記憶體中的地址丿x0010,x的值為0x1122,那乿x11為高位元組_x22為低位元組。對於大端模式,就將0x11放在低地址中,卿x0010中,0x22放在高地址中,卿x0011中。小端模式,剛好相反。我們常用的X86結構是小端模式,而KEIL C51則為大端模式。很多的ARM,DSP都為小端模式。有些ARM處理器還可以由硬體來選擇是大端模式還是小端模式

相關推薦

大端格式格式儲存區別

short int x;char x0,x1;x=0x1122;x0=((char*)&x)[0]; //低地址單元x1=((char*)&x)[1]; //高地址單元若x0=0x11,則是大端; 若x0=0x22,則是小端。-----------有時候,用C語言寫程式時需要知道是大端模式還是

通過一句話記住大端序的區別

在軟體開發過程中,軟體開發人員都知道大端序和小端序的概念,但是在真正使用的時候,傻傻分不清兩種到底是怎麼儲存。 首先還是先看下基本概念: 1、大端模式:高位元組儲存在記憶體的低地址 2、小端模式:高位元組儲存在記憶體的高地址 舉例: var = 0x11223344,對於這個變數

大端模式模式的區別

端模式,英文j :Endian.該名詞不只是存在於嵌入式之中.在計算機業界,簡單概要的說Endian表示資料在儲存器中的存放順序。下文舉例說明在計算機中大小端模式的區別。  如果將一個32位的整數0x12345678存放到一個整型變數(int)中,這個整型變數採用大端或者小端模式在記憶體中的儲存由下表所示。

大端區別

問題 大端機和小端機的區別。 深入理解計算機系統裡面有如下的描述: 對於跨越多位元組的物件,我們必須建立兩個原則,這個物件的地址是什麼以及儲存器中如何排列這些位元組。對於第一個問題,幾乎在所有的機器上面,多位元組物件都被儲存為連續的位元組序列,因此物

大端模式模式

說明 dia style 得出 nio 特性 所有 訪問 img 1. 為什麽會產生兩種模式: 在計算機中我們是以字節為單位的,每一個地址單元都對應著一個字節,一個字節就是8位,c語言中char類型之外,還 有四個字節的int,個字節的longlong類型,並

位元組序----大端

大端序 (big endian ):最高有效位元組儲存在最低低至,隨地址升高,位元組的權重降低。 小端序(little endian): 最低有效位元組儲存在最低地址,隨地址升高,位元組的權重升高。 比如說一個int型數字a為0x1234,那麼0x12代表a的高位,0x34代表a

[C/C++]_[初級]_[大端序理解]

場景 在進行Socket通訊時, 因為網路位元組序是 Big-Endian模式(標準), 而大部分Windows系統都是 Little Endian模式, 所以在傳輸數值型別的資料時, 需要把 Little Endian的記憶體資料轉換為 Big-Endian再發送.

詳解大端模式模式

一、大端模式和小端模式的起源      關於大端小端名詞的由來,有一個有趣的故事,來自於Jonathan Swift的《格利佛遊記》:Lilliput和Blefuscu這兩個強國在過去的36個月中一直在苦戰。戰爭的原因:大家都知道,吃雞蛋的時候,原始的方法是打破雞蛋較大

大端系統系統

大端/小端就是Big-Endian/Little-Endian問題 大端:高位位元組存在高地址上,低位位元組存在低地址上 小端:低位位元組存在高地址上,高位位元組存在低地址上  有兩種常見的方法來判斷是大端還是小端 方法一:使用指標 in

大端模式模式的判斷及其互相轉化

一.定義 大端模式(Big Endian):資料的高位元組,儲存在記憶體的低地址中;資料的低位元組,儲存在記憶體的高地址中。 小端模式(Little Endian):資料的高位元組,儲存在記憶體的高地址中;資料的低位元組,儲存在記憶體的低地址中。 二.

大端模式模式的再理解

首先看一段程式: #include <stdio.h> int main() { int a = 100; int b = 200; int c = 300; printf("%p\n",&a);

詳解Big-EndianLittle-Endian,大端模式模式

詳解大端模式和小端模式 一、大端模式和小端模式的起源         關於大端小端名詞的由來,有一個有趣的故事,來自於Jonathan Swift的《格利佛遊記》:Lilliput和Blefuscu這兩個強國在過去的36個月中一直在苦戰。戰爭的原因:大家都知道,吃雞蛋

大端模式模式的起源

        關於大端小端名詞的由來,有一個有趣的故事,來自於Jonathan Swift的《格利佛遊記》:Lilliput和Blefuscu這兩個強國在過去的36個月中一直在苦戰。戰爭的原因:大家都知道,吃雞蛋的時候,原始的方法是打破雞蛋較大的一端,可以那時的皇帝的祖父由於小時侯吃雞蛋,按這種方法把手指弄

大端機的判斷方法

int checkCPU() {  {   union w   {      int  a;    char b;   } c;   c.a = 1;   return (c.b == 1);  } } 剖析: 嵌入式系統開發者應該對Little-endian和Big-endian模式非

計算機大端模式模式 記憶體對齊問題(sizeof)

一、大端模式和小端模式的起源         關於大端小端名詞的由來,有一個有趣的故事,來自於Jonathan Swift的《格利佛遊記》:Lilliput和Blefuscu這兩個強國在過去的36個月中一直在苦戰。戰爭的原因:大家都知道,吃雞蛋的時候,原始的方法是打破雞蛋較大的一端,可以那時的皇帝的祖父由於

大端

spa 形式 tro bit 順序 什麽 基本類型 字節數 大端模式 Java基本類型占用的字節數:1字節: byte , boolean2字節: short , char4字節: int , float8字節: long , double註:1字節(byte)=8位(bi

格式大端格式(Little-Endian&Big-Endian)

不同的CPU有不同的位元組序型別,這些位元組序是指整數在記憶體中儲存的順序。 最常見的有兩種: 1. Little-endian:將低序位元組儲存在起始地址(低位編址) 2. Big-endian:將高序位元組儲存在起始地址(高位編址)   LE(little-endian): 最符合人的思維的位元組

大端儲存格式儲存格式

1.大端儲存格式即字資料的高位元組儲存在低地址中,而字資料的低位元組則存放在高地址中。與大端儲存格式相反,在小端儲存格式中,低地址中存放的是字資料的低位元組,高地址存放的是字資料的高位元組。 例如,3

什麼是格式大端格式

http://blog.chinaunix.net/uid-21515847-id-1825106.html 大端格式: 在這種格式中,字資料的高位元組儲存在低地址中,而字資料的低位元組則存放在高地址中。 小端格式: 與大端儲存格式相反,在小端儲存格式中,低地址中存放的

格式大端格式

不同的CPU有不同的位元組序型別,這些位元組序是指整數在記憶體中儲存的順序。 最常見的有兩種: 1. Little-endian:將低序位元組儲存在起始地址(低位編址) 2. Big-end