系统的存储模式---大小端模式

#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;
}


上一篇:关于C语言中输入字符的问题


下一篇:『每日一题 2012-02-09』打印回形数 C语言实现