大端存儲(chǔ)和小端存儲(chǔ)

參考: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;
    }
``
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容