cwnicol programming

プログラミング関連の投稿をすこしだけ

リトルエディアン ビッグエディアン 判別プログラム

int main(){
	short s;
	char *cp;
	
	s = 1;
	cp = (char *)&s;
	if(*cp){
		printf("リトルエディアン\n");
	}else{
		printf("ビッグエディアン\n");
	}

	return 0;
}



shortは上図のように2バイトを使用する。
・リトルエンディアンの場合には、低位バイトから値を格納し始める。
・ビッグエンディアンの場合は、高位バイトから値を格納し始める。


バイト数が大きくなってもルールは同じ。



もっとラフなソースで

int main(){

int i = 1;
if(*(char *)&i) printf("little\n");
else printf("big\n");

return 0;
}