読者です 読者をやめる 読者になる 読者になる

電脳ミツバチのコンピュータ広報室

銀座の屋上菜園を耕しています。コンピュータ畑も耕します。

バイトオーダー

C言語全般
スポンサーリンク
#include<stdio.h>
main()
{
	int a=0x12345678;

	int  i;
	unsigned char *p=(unsigned char*)&a;
	for(i=0;i<4;i++)
	{
		printf("%x\t",p[i]);
	}
	puts("\n");
}

実行結果
78      56      34      12

0x123・・と%xはどちらも16進数であるということである。
現在のCPUは32bitベースが殆どなので4バイト分のデータを出力する。
すると並び順がおかしいことに気付く。
これはリトルエンディアンと言う並び方でPentium系はこれである。
逆に12345678と通常の並びをするのがビックエンディアンという。
これにより負数の最上位ビットは変数のメモリ上の最初にあるとは限らない。