大端小端什麼意思?
我們都知道在計算機中是以二進制的方式存儲數據的,對於整形來說:數據存放內存中其實存放的是補碼。
舉個栗子:
int a = 7;
int b = 1;
這兩個變量在內存中是這樣存放的
數據存儲順序和我們想象的不太一樣,這就是大端小端存儲模式的原因。
先定義a,後定義b。
而內存中a和b地址有兩種可能,
一種是a的地址小於b的地址,即變量地址按照內存順序存放,由低位到高位。
還有一種是a的地址大於b的地址,低位地址存儲在高位。
大端:低位數據存放到高位地址,高位數據存放到低位地址
小端:低位數據存放到低位地址,高位數據存放到高位地址
舉例:存儲1
代碼舉例:
#include<stdio.h>
int check() {
int a = 1;
char *p = (char*)&a;
if (*p == 1)
return 1;
else
return 0;
}
int main() {
if (check() == 1)
printf("小端\n");
else
{
printf("大端\n");
}
return 0;
}
參考:https://blog.csdn.net/abc_xixi111/article/details/79934229