最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c語言大小端(數(shù)據(jù)在內(nèi)存中的存儲(chǔ))

 更新時(shí)間:2023年09月11日 10:35:44   作者:sifanchao  
大小端是內(nèi)存存儲(chǔ)字節(jié)的兩種方式,一個(gè)是大端存儲(chǔ),一個(gè)是小端存儲(chǔ),本文主要介紹了c語言大小端,具有一定的參考價(jià)值,感興趣的可以了解一下

大小端模式介紹

  • 大端(存儲(chǔ))模式:是指一個(gè)數(shù)據(jù)的低位字節(jié)序的內(nèi)容放在高地址處,高位字節(jié)序存的內(nèi)容放在低地址處。
  • 小端(存儲(chǔ))模式:是指一個(gè)數(shù)據(jù)的低位字節(jié)序內(nèi)容存放在低地址處,高位字節(jié)序的內(nèi)容存放在高地址處。(可以總結(jié)為“小小小”即低位、低地址、小端)

在計(jì)算機(jī)系統(tǒng)中,我們是以字節(jié)為單位存放數(shù)據(jù)的,每個(gè)地址單元都對應(yīng)著一個(gè)字節(jié),一個(gè)字節(jié)為8bit。但在C語言中存在不同的數(shù)據(jù)類型,占用的字節(jié)數(shù)也各不相同,那么就存在怎樣存放多個(gè)字節(jié)的問題,因此就出現(xiàn)了大端存儲(chǔ)模式和小端存儲(chǔ)模式。

我們可以創(chuàng)建一個(gè)整型變量i,在調(diào)試時(shí),打開調(diào)試>>窗口>>內(nèi)存,輸入&i,就可以在內(nèi)存窗口中看到變量i在內(nèi)存中是如何存儲(chǔ)的了。

從圖可以看出整型變量i在內(nèi)存中是其字節(jié)序低位的內(nèi)容存放在低地址,字節(jié)序高位的內(nèi)容存放在高地址,所以這臺機(jī)器是小端存儲(chǔ)模式。

由此我們可以通過觀察低地址處存放的內(nèi)容來判斷當(dāng)前機(jī)器的存儲(chǔ)模式,那么我們可以設(shè)計(jì)一個(gè)小程序來判斷當(dāng)前機(jī)器的存儲(chǔ)模式。

方法1:

#include <stdio.h>
int main()
{
    int i = 1;
    char *a = (char *)&i;
    if(*a == 1)
        printf("小端\n");
    else
        printf("大端\n");
    return 0;
}

方法2:共同體判斷

int Check_Sys()
{
    union
    {
        int i;
        char c;
    }un;
    un.i = 1;
    return un.c;//如果是小端返回1,如果是大端返回0
}
int main()
{
    if(Check_Sys())
        printf("小端\n");
    else
        printf("大端\n");
    return 0;
}

上面的共用體變量un,大小sizeof(un)=4,注意使用共用體(聯(lián)合)判斷時(shí),不能僅依靠公用類型最大者為其共用體變量大小,應(yīng)遵守對其原則和補(bǔ)齊原則。

對齊原則:結(jié)構(gòu)體變量中元素是按照定義順序一個(gè)一個(gè)放到內(nèi)存中去的,但并不是緊密排列的。從結(jié)構(gòu)體存儲(chǔ)的首地址開始,每一個(gè)元素放置到內(nèi)存中時(shí),它都會(huì)認(rèn)為內(nèi)存是以它自己的大小來劃分的,因此元素放置的位置一定會(huì)在自己寬度的整數(shù)倍上開始(以結(jié)構(gòu)體變量首地址為0計(jì)算)。

補(bǔ)齊原則:檢查計(jì)算出的存儲(chǔ)單元是否為所有元素中所占內(nèi)存最大的元素的長度的整數(shù)倍,是,則結(jié)束;若不是,則補(bǔ)齊為它的整數(shù)倍。

舉一個(gè)例子:

union Un
{
    int i;
    char arr[5];
};

sizeof(union Un)=8

到此這篇關(guān)于c語言大小端(數(shù)據(jù)在內(nèi)存中的存儲(chǔ))的文章就介紹到這了,更多相關(guān)c語言大小端內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++中construct_at和uninitialized_copy方法的使用

    C++中construct_at和uninitialized_copy方法的使用

    本文主要介紹了C++中construct_at和uninitialized_copy方法的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-03-03
  • vscode+leetcode環(huán)境配置方法

    vscode+leetcode環(huán)境配置方法

    這篇文章主要介紹了vscode+leetcode環(huán)境配置,本文通過實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • C++中獲取字符串長度的函數(shù)sizeof()、strlen()、length()、size()詳解和區(qū)別(推薦)

    C++中獲取字符串長度的函數(shù)sizeof()、strlen()、length()、size()詳解和區(qū)別(推薦)

    在C++中計(jì)算長度的函數(shù)有四種,它們分別是sizeof()?,size(),strlen(),str.length(),這篇文章主要介紹了C++中獲取字符串長度的函數(shù)sizeof()、strlen()、length()、size()詳解和區(qū)別,需要的朋友可以參考下
    2023-02-02
  • C++Node類Cartographer開始軌跡的處理深度詳解

    C++Node類Cartographer開始軌跡的處理深度詳解

    這篇文章主要介紹了C++Node類Cartographer開始軌跡的處理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-03-03
  • MFC實(shí)現(xiàn)漂亮界面之美化按鈕

    MFC實(shí)現(xiàn)漂亮界面之美化按鈕

    這篇文章主要為大家詳細(xì)介紹了MFC實(shí)現(xiàn)漂亮界面之美化按鈕,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • C語言?超詳細(xì)順序表的模擬實(shí)現(xiàn)實(shí)例建議收藏

    C語言?超詳細(xì)順序表的模擬實(shí)現(xiàn)實(shí)例建議收藏

    程序中經(jīng)常需要將一組數(shù)據(jù)元素作為整體管理和使用,需要?jiǎng)?chuàng)建這種元素組,用變量記錄它們,傳進(jìn)傳出函數(shù)等。一組數(shù)據(jù)中包含的元素個(gè)數(shù)可能發(fā)生變化,順序表則是將元素順序地存放在一塊連續(xù)的存儲(chǔ)區(qū)里,元素間的順序關(guān)系由它們的存儲(chǔ)順序自然表示
    2022-03-03
  • C++實(shí)現(xiàn)學(xué)生檔案管理系統(tǒng)

    C++實(shí)現(xiàn)學(xué)生檔案管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)學(xué)生檔案管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C++實(shí)現(xiàn)數(shù)獨(dú)快速求解

    C++實(shí)現(xiàn)數(shù)獨(dú)快速求解

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)數(shù)獨(dú)快速求解的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C++實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)(Map實(shí)現(xiàn))

    C++實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)(Map實(shí)現(xiàn))

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C/C++中關(guān)于std::string的compare陷阱示例詳解

    C/C++中關(guān)于std::string的compare陷阱示例詳解

    這篇文章主要給大家介紹了關(guān)于C/C++中關(guān)于std::string的compare陷阱的相關(guān)資料,文中先對C/C++中的std::string進(jìn)行了簡單的介紹,通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11

最新評論

当雄县| 瓦房店市| 什邡市| 钟山县| 正定县| 罗田县| 南充市| 若羌县| 外汇| 临沭县| 隆回县| 柞水县| 塔城市| 阿图什市| 元朗区| 和林格尔县| 文山县| 连州市| 西平县| 公主岭市| 龙江县| 枝江市| 岳普湖县| 团风县| 咸阳市| 象州县| 屏南县| 凤山市| 四川省| 潜山县| 阿瓦提县| 海宁市| 南皮县| 都匀市| 平阳县| 秭归县| 布拖县| 闸北区| 阿瓦提县| 监利县| 陕西省|