C语言 编写一个程序确定机器是大端法还是小端法机器
发布网友
发布时间:2022-04-21 14:50
我来回答
共2个回答
热心网友
时间:2023-11-12 19:22
#include<stdio.h>
union node
{
int a;
char b[4];
};
int main()
{
union node t;
t.a=1;
printf("%d\n",t.b[0]);
printf("%d\n",t.b[1]);
printf("%d\n",t.b[2]);
printf("%d\n",t.b[3]);
}
把int的每个字节读出来。要是第一个字节为0证明是大端模式 第一个字节为1证明是小端模式
热心网友
时间:2023-11-12 19:23
大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;
小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。
下面这段代码可以用来确定机器是大端法还是小端法机器:
short x;
char x0;
x=0x1122;
x0=((char*)&x)[0]; //低地址单元
if(x0==0x11)printf("大端\n");
else printf("小端\n");