コンピュータがスモールエンドストレージであるか、それとも大エンドストレージであるかをテストします.
一.大エンドストレージと小エンドストレージの概念を理解する
1).大端記憶:大端モードとは、データの高バイトがメモリの低アドレスに保存され、データの低バイトがメモリの高アドレスに保存されることを意味し、このような記憶モードは、データを文字列の順序として処理することに似ている.アドレスは小から大へ増加し、データは高位から低位へ放出される.
2).小端記憶:小端モードとは、データの高バイトがメモリの高アドレスに保存され、データの低バイトがメモリの低アドレスに保存されることを意味し、この記憶モードはアドレスの高低とデータビット権を効果的に結合し、高アドレス部分の重み値が高く、低アドレス部の重み値が低く、私たちの論理方法と一致する.
二.設計プログラムはコンピュータが大端ストレージか小端ストレージかをテストする.
1.テストデータとしてデータ1を入力します.
1)1のタイプはint型で,コンピュータに4バイトのメモリを格納する(00000001).int型をchar型に変換してバイトを読み込むことができます.01であれば、難しいのはスモールエンドストレージです.00の場合は、大規模なストレージです.
2).unionで解決できます.同じストレージ(00000000001).
2.コード実装部
以上は私の学习の过程の中のいくつかの経験の総括です.もちろん、私の能力は有限で、どうしても漏れがあって、みんなが指摘することができることを望みます.
1).大端記憶:大端モードとは、データの高バイトがメモリの低アドレスに保存され、データの低バイトがメモリの高アドレスに保存されることを意味し、このような記憶モードは、データを文字列の順序として処理することに似ている.アドレスは小から大へ増加し、データは高位から低位へ放出される.
2).小端記憶:小端モードとは、データの高バイトがメモリの高アドレスに保存され、データの低バイトがメモリの低アドレスに保存されることを意味し、この記憶モードはアドレスの高低とデータビット権を効果的に結合し、高アドレス部分の重み値が高く、低アドレス部の重み値が低く、私たちの論理方法と一致する.
二.設計プログラムはコンピュータが大端ストレージか小端ストレージかをテストする.
1.テストデータとしてデータ1を入力します.
1)1のタイプはint型で,コンピュータに4バイトのメモリを格納する(00000001).int型をchar型に変換してバイトを読み込むことができます.01であれば、難しいのはスモールエンドストレージです.00の場合は、大規模なストレージです.
2).unionで解決できます.同じストレージ(00000000001).
2.コード実装部
#include<stdio.h>//
// 1).
int mem_cheak()
{
int i = 1;
char *ptr = (char *)(&i);
if (*ptr == 1)
{
return 1;
}
else if (*ptr == 0)
{
return 0;
}
}
int main()
{
int ret = mem_cheak();
if (ret == 1)
{
printf("little
");
}
else
{
printf("big
");
}
system("pause");
return 0;
}
#include<stdio.h>
int sys_check()
{
union UN
{
int i;
char c;
}un;
un.i = 1;
if (un.c == 1)
{
return 1;// 1
}
else
{
return 0;// 0
}
}
int main()
{
int ret = sys_check();
if (ret == 1)
{
printf("little
");
}
else
{
printf("big
");
}
system("pause");
return 0;
}
以上は私の学习の过程の中のいくつかの経験の総括です.もちろん、私の能力は有限で、どうしても漏れがあって、みんなが指摘することができることを望みます.