先解释一下什么是高低位,高低端,高低地址?
关于数据:
举例子: int a=123456; //6是低位,1是高位
int b = 0x12345;//跟上面一样,5是低位,1是高位 总结: 个位数是低位,往左十位是比个位高,百位又比十位高,越往左越高!
关于地址:
举例子: 0x0001, 0x0002,0x0003,0x0004; 这里0x0001是低位,0x0004是高位; 总结:地址越接近0就是低位地址,远离就是高位地址;
关于大小端:
定义:低位数据存放在低位地址,叫做 小端; 低位数据存放在高位地址是大端; 高位数据放低位地址,低位数据放高位地址是 大端;//够明白了吧?
程序:
int main()
{
short int x;
char x1,x2;
x = 0x1122;
x1 = ((char *)&x)[0]; //低地址
x2 = ((char *)&x)[1]; //高地址
printf("x1=%x\n",x1);
printf("x2=%x\n",x2);
return 0;
}
如果 x1 =22,x2=11 就是小端; 如果1x=11,x2=22 就是大端;
如图,我的电脑是小端!