• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 高位優先和低位優先

    發表于:2007-05-26來源:作者:點擊數: 標簽:
    查看內存布局。 可能比較繞口,那就是最低的地址存放高位字節,稱為高位優先,最低的地址存放低位字節,成為低位優先 詳細的內存察看如下: 代碼: #include stdio.h struct ss{ unsigned int i1:1; unsigned int i2:1; unsigned int i3:1; unsigned int i4:1; un

    查看內存布局。

    可能比較繞口,那就是最低的地址存放高位字節,稱為高位優先,最低的地址存放低位字節,成為低位優先

    詳細的內存察看如下:

    代碼:
    #include <stdio.h> 
    struct ss{
    unsigned int i1:1;
    unsigned int i2:1;
    unsigned int i3:1;
    unsigned int i4:1;
    unsigned int i5:1;
    unsigned int i6:1;
    unsigned int i7:1;
    unsigned int i8:1;
    unsigned int j1:1;
    unsigned int j2:1;
    unsigned int j3:1;
    unsigned int j4:1;
    unsigned int j5:1;
    unsigned int j6:1;
    unsigned int j7:1;
    unsigned int j8:1;
    unsigned int k1:1;
    unsigned int k2:1;
    unsigned int k3:1;
    unsigned int k4:1;
    unsigned int k5:1;
    unsigned int k6:1;
    unsigned int k7:1;
    unsigned int k8:1;
    unsigned int l1:1;
    unsigned int l2:1;
    unsigned int l3:1;
    unsigned int l4:1;
    unsigned int l5:1;
    unsigned int l6:1;
    unsigned int l7:1;
    unsigned int l8:1;
    };
    int main()
    {
    struct ss s;
    int j=1025;
    memcpy(&s,&j,4);
    printf("%d\n",sizeof(struct ss));
    printf("%d%d%d%d%d%d%d%d\n",s.i1,s.i2,s.i3,s.i4,s.i5,s.i6,s.i7,s.i8);
    printf("%d%d%d%d%d%d%d%d\n",s.j1,s.j2,s.j3,s.j4,s.j5,s.j6,s.j7,s.j8);
    printf("%d%d%d%d%d%d%d%d\n",s.k1,s.k2,s.k3,s.k4,s.k5,s.k6,s.k7,s.k8);
    printf("%d%d%d%d%d%d%d%d\n",s.l1,s.l2,s.l3,s.l4,s.l5,s.l6,s.l7,s.l8);
    return 0;
    }

    開始說說高位優先和低位優先,我們看如下代碼:
    int i=10;
    那么i在內存中的布局如何哪?
    假設內存是從低--->高增長的
    在低位優先的硬件里面,內存布局如下:
    00001010 00000000 00000000 00000000
    而在高位優先的內存中:
    00000000 00000000 00000000 00001010
    這就是我們經常聽說的高位優先,低位優先。
    那么我們需要注意什么冬冬勒?
    看下面一個程序:
    #include <stdio.h>
        main()
        {
            int a=10;
            short b;
            memcpy(&b,&a,2);
            printf("%d\n",b);
        }
    如果你輸出結果為:10,恭喜你,你的內存存儲是低位優先,
    如果結果為:0呢?恭喜你,你的內存存儲是高位優先。
    btw:在處理器中總是高位優先。
     結論:

    原文轉自:http://www.kjueaiud.com

    評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>