1. 程式人生 > >C++檢視資料儲存大小端模式

C++檢視資料儲存大小端模式

所謂的大端模式,是指資料的低位儲存在記憶體的高地址中,而資料的高位,儲存在記憶體的低地址中;

所謂的小端模式,是指資料的低位儲存在記憶體的低地址中,而資料的高位儲存在記憶體的高地址中。

舉個例子,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小端儲存資料。