Computer Architecture,  Study

[Computer Arch.] Endian

Memory에 data를 저장하는 방식은 크게 두 종류 1) Big endian 2) little endian으로 나뉜다. 기본적으로 register에 저장될 때는 모르지만 memory로 옮겨서 저장할 때는 endian 방식에 따라서 다르게 저장된다.

Big Endian

사람이 이해하는 숫자를 저장하는 방식의 반대되는 방식으로, 낮은 단위의 숫자가 왼쪽에 위치한다.

  1. AIX on POWER
  2. AmigaOS on PowerPC and 680×0
  3. HP-UX on Itanium and PA-RISC
  4. Linux on MIPS, SPARC, PA-RISC, POWER, PowerPC, 680×0, ESA/390, and z/Architecture
  5. Mac OS on PowerPC and 680×0
  6. Mac OS X on PowerPC
  7. MVS and DOS/VSE on ESA/390, and z/VSE and z/OS on z/Architecture
  8. Solaris on SPARC

Little Endian

사람이 이해하는 숫자를 저장하는 방식이다. 사용되는 system은 다음과 같다.

  1. Linux on x86, x64, Alpha and Itanium
  2. Mac OS X on x86, x64
  3. OpenVMS on VAX, Alpha and Itanium
  4. Solaris on x86, x64, PowerPC
  5. Tru64 UNIX on Alpha
  6. Windows on x86, x64 and Itanium

Example

본인이 사용하는 컴퓨터의 endian 방식을 확인하는 코드는 다음과 같다.

#include <stdio.h>
 
int main()
{
    char *char_num;
    short short_num = 0xFF12;
 
    char_num = &short_num;
 
    if(*char_num == 0xFF)
    {   
        printf("Big Endian\n");
        return 0;
    }   
    else if(*char_num == 0x12)
    {   
        printf("Little Endian\n");
        return 1;
    }
 
    return 0;
}

Leave a Reply

Your email address will not be published. Required fields are marked *