閱讀491 返回首頁    go 阿裏雲 go 技術社區[雲棲]


係統的存儲模式---大小端模式

#include <stdio.h>

bool issmall();
int main()
{

	if (issmall())
	{
		printf("Little \n");
	}
	else
	{
		printf("Big\n");
	}	
262 657的二進製是
0000 0000 0000 0100 0000 0010 0000 0001
如果是Intel PC(Little-endian),這個數字將存儲為
字節地址:00           01            02          03
 0000 0001    0000 0010     0000 01000000 0000
如果是Motorola處理機的Mac機,在內存中擺放如下:
字節地址:00           01            02          03

 0000 0000    0000 0100     0000 00100000 0001



	//上麵的判斷測試出你的機子的類型
	//下麵的代碼是對大小端的理解及運用
	int a[5]={1,2,3,4,5};
	int *p1=(int *)(&a+1);
	int *p2=(int *)((int)a+1);
	printf("%x   %x\n",p1[-1],*p2);

	
	return 0;

}

bool issmall()
{
	union{
		int j;
		char c;
	}temp;
	temp.j=1;
	if (1==temp.c)
	{
		return true;
	}
	else
		return false;
}


最後更新:2017-04-02 06:52:24

  上一篇:go GridView翻頁記住選中的checkbox
  下一篇:go Linq多表操作中事務的應用