码迷,mamicode.com
首页 > 其他好文 > 详细

判断系统是大端还是小端的两种方法

时间:2017-09-15 02:15:33      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:class   union   成员   amp   stdio.h   获得   har   nbsp   span   

#include <iostream>
#include <stdio.h>
#include <malloc.h>
#include <string.h>

using namespace std;

//判断系统是大端还是小端:通过将&int转换为char*
int fun()
{
    int num = 1;

    // *((char*)&num)获得num的最低字节,为0x00,说明是大端 为0x01,说明是小端
    return *((char*)&num)?1:0; // 本机返回1:为大端
}

//判断系统是大端还是小端:通过联合体,因为联合体的所有成员都从低地址开始存放
int fun1()
{
    union test
    {
        int i;
        char c;
    };

    test t;
    t.i = 1;

    //如果是大端,则t.c为0x00,则t.c!=1,返回0 是小端,则t.c为0x01,则t.c==1,返回1
    return (t.c==1);
}

int main()
{
    cout << fun() << endl;
    cout << fun1() << endl;
}

 

判断系统是大端还是小端的两种方法

标签:class   union   成员   amp   stdio.h   获得   har   nbsp   span   

原文地址:http://www.cnblogs.com/linuxAndMcu/p/7523911.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!