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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了判断系统是大端还是小端的两种方法相关的知识,希望对你有一定的参考价值。

#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;
}

 

以上是关于判断系统是大端还是小端的两种方法的主要内容,如果未能解决你的问题,请参考以下文章

大端小端的概念

判断计算机是大端还是小端

轻松记住大端小端的含义(附对大端和小端的解释)

如果判断机器是大端还是小端

C++之如何判断大端小端

大端/小端的存储模式