C++檢視資料儲存大小端模式
阿新 • • 發佈:2018-12-01
所謂的大端模式,是指資料的低位儲存在記憶體的高地址中,而資料的高位,儲存在記憶體的低地址中;
所謂的小端模式,是指資料的低位儲存在記憶體的低地址中,而資料的高位儲存在記憶體的高地址中。
舉個例子,16bit的short型別整數0x1234,會佔用兩個大B(Byte位元組),即兩個記憶體單元比如說是0x0001(低地址)和0x0002(高地址)這兩個。如果是大端模式,則存放方式是0x0001這個單元儲存0x12(高位),0x0002這個單元儲存0x34(低位),如果小端則相反,即0x0001這個單元存0x34,0x0002這個單元存0x12。我們可以寫個函式測試一下。
//#include "learn.h" #include<stdio.h> #include<iostream> #include<vector> #include<map> #include<list> #include<string> #include<stdlib.h> #include<algorithm> using namespace std; void JudgeBig()//求得short型別整數num的地址,轉換為char指標型,然後分別看高地址和低地址存放了那些內容 { short int num; char c0, c1; num = 0x1122;//0x11為高位 0x22為低位 c0 = ((char*)&num)[0];//低地址 c1 = ((char*)&num)[1];//高地址 printf("%x\n", c0); printf("%x\n", c1); cout << c0 << " " << c1 << endl;// if (c0 == 0x11)//低地址存高位 cout << "big" << endl; else//低地址存低位 cout << "little" << endl; } int main() { JudgeBig(); }
VS小端儲存資料。