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

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

バイトオーダー

スポンサーリンク
#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と通常の並びをするのがビックエンディアンという。
これにより負数の最上位ビットは変数のメモリ上の最初にあるとは限らない。