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

首頁 > 編程 > C > 正文

判斷機器大小端的兩種實現方法

2020-01-26 16:21:37
字體:
來源:轉載
供稿:網友

第一種方法


思路:利用指針的強制類型轉換

復制代碼 代碼如下:

#include <stdio.h>
int main(void)
{   
int data1 = 0x12345678;  
int i;  
for(i=0; i<4; i++) 
{      
printf("%#x ----->%p/n",*((char *)&data1 + i),(char *)&data1 + i);  
}    
return 0;
}

從輸出的結果可以看出,高位地址0xbfc1b1ff存的是數據的高位0x12,低位地址0xbfc1b1fc存的是數據的低位0x78。所以是小端。同時我們亦可以看到,對數據data取地址實際指向的是存放低位數據的空間。

第二種方法

思路:利用共用體所有數據都從同一地址開始存儲。

復制代碼 代碼如下:

#include <stdio.h>

int main(void)

{

    int i;

    union endian

    {

        int data;

        char ch;

    }test;

    test.data = 0x12345678;

    if(test.ch == 0x78)

    {

        printf("little endian!/n");

    }

    else

    {

        printf("big endian!/n");

    }

 

    for(i=0; i<4; i++)

    {

        printf("%#x ------- %p/n",*((char *)&test.data + i),(char *)&test.data + i);

    }

    return 0;

}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 广丰县| 古丈县| 颍上县| 宜阳县| 渭源县| 石家庄市| 类乌齐县| 水城县| 镇雄县| 江都市| 中宁县| 财经| 永登县| 新平| 达日县| 云南省| 南木林县| 呈贡县| 太仆寺旗| 安新县| 黄梅县| 泉州市| 平山县| 井冈山市| 西安市| 临夏市| 临泽县| 宣化县| 定日县| 忻城县| 营山县| 威远县| 盐边县| 田东县| 仁寿县| 酉阳| 安丘市| 新丰县| 陇西县| 左贡县| 河源市|