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;
}

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!

コメント

人気の投稿