參考:https://blog.csdn.net/u010889616/article/details/47157637
大端存儲(chǔ):數(shù)據(jù)的低字節(jié)存儲(chǔ)在地址空間的高字節(jié)位,數(shù)據(jù)的高字節(jié)存儲(chǔ)在地址空間的低字節(jié)位。
小端存儲(chǔ):數(shù)據(jù)的低字節(jié)存儲(chǔ)在地址空間的低字節(jié)位,數(shù)據(jù)的高字節(jié)存儲(chǔ)在地址空間的高字節(jié)位。
為什么要有大小端存儲(chǔ):
大端存儲(chǔ)因?yàn)榈偷刂废全@取到的是數(shù)據(jù)的高地址,也就是符號(hào)位,從而很容易知道一個(gè)數(shù)是正數(shù)還是負(fù)數(shù)。而小端存儲(chǔ),則相反,更適合做數(shù)值的四則運(yùn)算,最后再刷新符號(hào)位。因?yàn)榇嬖谥M(jìn)位,如果從高位開始,算到后面發(fā)現(xiàn)有進(jìn)位,就要回退到高位處理進(jìn)位,而小端存儲(chǔ)這樣做可以先判斷是否有進(jìn)位,而不用返回去再進(jìn)行計(jì)算。

image.png
void judgeSystemEndian()
{
int a = 0x1234;
char b = static_cast<char>(a);
if (b == 0x12)
{
cout << "本計(jì)算機(jī)是___"大端"___存儲(chǔ)模式." << endl;
}
else if (b == 0x34)
{
cout << "本計(jì)算機(jī)是___"小端"___存儲(chǔ)模式." << endl;
}
``