写一个函数判断机子大小端的问题
程序员文章站
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");
}
上一篇: 大小端的测试