コンピュータがスモールエンドストレージであるか、それとも大エンドストレージであるかをテストします.


一.大エンドストレージと小エンドストレージの概念を理解する
    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;     }

以上は私の学习の过程の中のいくつかの経験の総括です.もちろん、私の能力は有限で、どうしても漏れがあって、みんなが指摘することができることを望みます.