c言語の大端小端ストレージの問題

980 ワード

コンピュータにデータが格納されていることは、符号化された形式で格納されていることが知られています.コンピュータでは、データの高バイトコンテンツがハイランドアドレスに配置され、低バイトコンテンツが低アドレスに配置されている場合、小端バイトシーケンスと呼ばれます.逆に、データの高バイトコンテンツが最下位アドレスに、低バイトコンテンツが上位アドレスに配置されている場合、これを大端バイトシーケンスと呼ぶ.
例えば、int n=1;
その原コード、逆コード、補コードはいずれも00000000 00000000 00000000です
コンピュータ内の小端ストレージバイトシーケンスは00 00 00 01です.
大容量ストレージバイト順01,000,000
しかし、コンピュータに大きなエンドバイトシーケンスで格納されているか、それとも小さなエンドバイトシーケンスで格納されているかをどのように知っていますか.次に、コンピュータ内のデータの格納方法を求める2つの方法を示します.コードは以下の通りです.
#include 
int main()
{
	int num = 1;
	char *p = (char *)#
	if (*p == 0)
		printf(" 
"); else printf("
"); system("pause"); return 0; }

この方法に加えて,共用体でこの問題を解決することもできる.
コードは次のとおりです.
#include 
union UN
{
	char c;
	int i;
}un;
int main()
{
	un.i = 1;
	if (un.c ==0)
		printf(" 
"); else printf("
"); system("pause"); return 0; }