欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

写一个函数判断机子大小端的问题

程序员文章站 2022-04-22 12:08:45
...

小端机就是存放数据时, 数据的低位存在低地址,高位存在高地址

大端机就是存放数据时, 数据的低位存在高地址,高位存在低地址

写一个函数判断机子大小端的问题
代码如下:


#include<stdio.h>
#include<stdlib.h>
void port()
{
    int a = 1;
    int b = (char)a;
    if(b == 1)
        printf("小端\n");//低位存在低地址,高位存在高地址
    else
        printf("大端\n");//低位存在高地址,高位存在低地址
}
int main()
{
    port1();
    system("pause");
    return 0;
}

一个int型变量占四个字节,一个char型变量占一个字节,将一个int型变量强转为char类型的变量时,只保留低8位。 如果是小端存储,1
的低八位为00000001,转成char类型的二进制低八位就为00000001。如果是大端存储,1
的低八位为00000000,转成char类型的低八位为00000000。

//也可以用联合体来判断。

void port1()
{
    union n
    {
        int a;
        char c;
    };
    union n ss;
    ss.a = 1;
    if(ss.c == 1)
        printf("小\n");
    else
        printf("大\n");
}
相关标签: 大小端