'big endian'에 해당되는 글 1건

  1. 2006/10/18 Big/Little Endian

Big/Little Endian

Generic C 2006/10/18 14:20

매번 헷갈리는 개념이 endian 개념이다.

간단하게 말해 big endian은 그냥 쓰는 거고, Little endian은 뒤집어서 쓰는거다..
예를 들면, "4F52"를 저장할 때에, atomic 단위가 1 byte라면
- 4F52(4F - 1000번지, 52 - 1001번지) 로 저장되면 big endian
- 524F(52 - 1000번지, 4F - 1001번지)로 저장되면 little endian
인 것이다.

Endian 여부를 파악할 수 있는 함수를 wikipedia에서 찾아왔다.

#define LITTLE_ENDIAN   0
#define BIG_ENDIAN      1

int machineEndianness()
{
  long int i = 1;
  const char *p = (const char *) &i;
  if (p[0] == 1)  // Lowest address contains the least significant byte
     return LITTLE_ENDIAN;
  else
     return BIG_ENDIAN;
}

long int 형은 4 byte이고, 0x00000001 일 것이므로
big endian이라면 첫 번째 바이트에 0x00이
little endian이라면 첫 번째 바이트에 0x01이 저장될 것이다.

이와 같이 하면, endian 여부를 파악할 수 있을것이다.