国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

大端格式和小端格式

2019-11-14 09:57:31
字體:
供稿:網(wǎng)友

大端格式(big endian / BE):數(shù)據(jù)在內(nèi)存中存儲(chǔ)時(shí),先存儲(chǔ)高位部分到低地址,再存儲(chǔ)低位部分到高地址

小端格式(little endian /LE):數(shù)據(jù)在內(nèi)存中存儲(chǔ)時(shí),先存儲(chǔ)低位部分到低地址,再存儲(chǔ)高位部分到高地址

例子1:在內(nèi)存中雙字0x01020304(DWord)的存儲(chǔ)方式。 內(nèi)存地址 4000 4001 4002 4003    LE      04   03   02   01    BE      01   02   03   04 注:每個(gè)地址存1個(gè)字節(jié),每個(gè)字有4個(gè)字節(jié)。2位16進(jìn)制數(shù)是1個(gè)字節(jié)(0xFF=11111111)。 例子2:如果我們將0x1234abcd寫入到以0x0000開始的內(nèi)存中,則結(jié)果為    big-endian   little-endian0x0000    0x12         0xcd0x0001    0x23         0xab0x0002    0xab         0x340x0003    0xcd         0x12

需要知道:PowerPC系列采用big endian方式存儲(chǔ)數(shù)據(jù),而x86系列則采用littleendian方式存儲(chǔ)數(shù)據(jù)

為了檢測(cè)自己系統(tǒng)是大端格式還是小端格式,可以用一下代碼測(cè)試:

int is_big_endian(void){    union {        uint32_t i;        char c[4];    } e = {0x10000000};    return e.c[0];}

在main中測(cè)試:

int main()

{

    PRintf("System is %s -endian./n", is_big_endian() ? "big" : "little");

return 0;

}

對(duì)報(bào)文中“前低后高”報(bào)文的處理可參考以下例子:

int main(){     unsigned int orignalNum = 0x4048F5C2;//3.14    float num = *(float *)(&orignalNum);    printf("%f/n",num); //已知4字節(jié)報(bào)文可以按上述解析//下面例子則是將前低后高的報(bào)文放入數(shù)組,由數(shù)組內(nèi)存轉(zhuǎn)換成float值        float        b;   unsigned char Fvalue[4] = {0xc2,0xf5,0x48,0x40} ;//注意,這里與0x4048F5C2恰恰高地位對(duì)調(diào)   memcpy(&b,Fvalue,sizeof(Fvalue)); //按照內(nèi)存地址的低位到高位拷貝    printf("b =%f /n",b);

測(cè)試結(jié)果:

3.140000b =3.140000


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 黎平县| 治县。| 大洼县| 沈丘县| 渭源县| 家居| 萨迦县| 四平市| 泸溪县| 洛阳市| 上饶县| 昌都县| 思南县| 宝鸡市| 遵义市| 建水县| 马尔康县| 嘉义市| 安顺市| 阿拉善右旗| 鹰潭市| 南丰县| 延长县| 长沙市| 萨嘎县| 晋州市| 九台市| 呼玛县| 儋州市| 凯里市| 顺平县| 沧源| 太保市| 山西省| 屏边| 会东县| 白玉县| 光泽县| 宁化县| 西乌珠穆沁旗| 盐边县|