先解釋一下什麼是高低位,高低端,高低地址?
關於數據:
舉例子: 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 就是大端;
如圖,我的電腦是小端!