Big endian or Little endian
Big endian: データをバイト単位で配置する際のやり方のひとつで「最初のバイトからデータを並べる」
Little endian: データをバイト単位で配置する際のやり方のひとつで「最後のバイトからデータを並べる」
main.c
#include <stdio.h>
int main(int argc, char *argv[]){
unsigned long data = 0x01234567;
unsigned char *array;
array = (unsigned char*)&data;
printf("%02x,%02x,%02x,%02x\n",array[0],array[1],array[2],array[3]);
if (array[0] == 0x67)
printf("cpu is little endian!\n");
else
printf("cpu is big endian!\n");
return 0;
}
int main(int argc, char *argv[]){
unsigned long data = 0x01234567;
unsigned char *array;
array = (unsigned char*)&data;
printf("%02x,%02x,%02x,%02x\n",array[0],array[1],array[2],array[3]);
if (array[0] == 0x67)
printf("cpu is little endian!\n");
else
printf("cpu is big endian!\n");
return 0;
}
makefile.test
all: main
main: main.o
gcc -o main main.o
main.o: main.c
gcc -c main.c
clean:
rm -rf main main.o
linuxで実行した結果は以下。
# ./main
67,45,23,01
cpu is little endian!
コメント
コメントを投稿