サイズエンドモード(コモンunionテスト、ポインタテスト)
987 ワード
ストレージ・システムのサイズ・エンド・モード
0x01
高位対データ低バイト------大端
B3 B2 B1 B0
01 00 00 00
高位対データ高バイト------小端
B3 B2 B1 B0
00 00 00 01
C 51単片機内部記憶は大端モードを採用し、ARMは小端モードを採用し、intelの大部分は小端モードを採用する
方法一:共用体テスト
方法2:ポインタ方式テスト
#include
union test
{
int a;
char b;
};
// 0, 1
int is_little_endian(void)
{
union test u1;
u1.a=1;
return u1.b;
}
//
int is_little_endian2(void)
{
int a=1;
char b=*((char *)(&a));
return b;
}
int main()
{
int ret=-1;
ret=is_little_endian();
if(1==ret)
{
printf("
");
}
if(0==ret)
{
printf("
");
}
return 0;
}
テストを実現する鍵は、共用体の中のchar読み取り時に低位から読み取ることです
1が下位に配置されている場合は、1、すなわち小端モードを返します.
通信システムにおけるサイズエンドモード
後で追加します...