E35.【C语言】判断大/小端序

时间:2024-10-02 07:55:25

1.题目

写一个程序实现大/小端序的判断

2.前置知识

见文61.【C语言】数据在内存中的存储

见文65.【C语言】联合体

3.代码

方案一

对于单个变量,判断存储的第一个字节

#define   _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
    int a = 2;
    if ((*(char*)&a) == 2)
        printf("小端序");
    else
        printf("大端序");
    return 0;
}

 

方案二

对于联合体,另外设一个char类型的变量,从而在多个字节中只判断第一个字节

#include <stdio.h>
int check_endian()
{
    union U
    {
        char a;
        int b;
    }un;
    un.b = 1;
    //返回联合体的第一个字节
    return un.b;
}

int main()
{
    int ret = check_endian();
    if (ret)
        printf("小端");
    else
        printf("大端");
    return 0;
}