c语言判断大端小端
发布时间: 2025-04-15 14:55:23
1. 大端模式和小端模式的区别及如何判断的存储器的模式
一个数需要超过一个字节来存储时,就有大端和小端的区别,只用一个字节时,无所谓大小端
低位的放在低地址,也就是小个在前,叫小端,反之叫大端
c和c++需要面对这样的问题,java等高级语言已经屏蔽这个差异,不需要额外处理
在c中,可以用以下代码片段来判断是大端还是小端
union {char c; int i;} u;
u.i = 1;
if(u.c == 1){//小端}
else{//大端}
2. 判断一个机器使用的是大端存储还是小端存储
下面的程序可以判断一台机器是大端存储还是小端存储。
[cpp]view plain
#include<stdio.h>
intmain(intargc,char**argv){
//联合(union)中,所有成员引用的是内存中相同位置,
//由具体成员类型决定了这些位如何被解释
union{
shorts;
charc[sizeof(short)];
}un;
un.s=0x0102;//16进制数中,02是低序字节,01是高序字节
if(sizeof(short)==2){
if(un.c[0]==1&&un.c[1]==2){
printf("big-endian ");
}elseif(un.c[0]==2&&un.c[1]==1){
printf("little-endian ");
}else{
printf("unknow ");
}
}else{
printf("sizeof(short)=%d ",sizeof(short));
}
return0;
}
热点内容