바이트 저장 순서 (byte order)


컴퓨터는 대게 32비트(4바이트)나 64비트(8바이트)로 저장하는데 이렇게 연속되는 바이트를 순서대로 저장해야 하는데, 이것을 바이트 저장 순서(byte order) 라고 한다.

바이트가 저장되는 순서에 따라 두가지로 나뉜다.

  1. 빅 엔디안 (big endian)

  2. 리틀 엔디안 (lettle endian)

    빅 엔디안 (Big endian)


    빅 엔디안 방식은 낮은 주소에 데이터의 높은 바이트부터 저장하는 방식입니다.이 방식은 평소 우리가 숫자를 사용하는 선형 방식과 같은 방식입니다. 따라서 메모리에 저장된 순서 그대로 읽을 수 있으며, 이해하기가 쉽다는 장점을 가지고 있습니다.

    Untitled

    0x12345678 //이런 정수가 있다고 하면
    
    0x12, 0x34, 0x56, 0x78 //이런 4개의 1바이트들로 구성되어 있다.
    

    리틀 엔디안 (Little endian)


    리틀 엔디안 방식은 낮은 주소에 데이터의 낮은 바이트부터 저장하는 방식입니다. 이 방식은 선형 방식의 반대로 읽습니다.

    Untitled

0x12345678 //이런 정수가 있다고 하면
0x78, 0x56, 0x34, 0x12 //빅엔디안과 반대로 저장됩니다.

빅 엔디안 vs 리틀 엔디안


둘의 차이점은 데이터 저장방식의 차이로 어느 방식이 더 우수한지 단정짓기 어렵습니다. 물리적으로 데이터를 조작하거나 산술 연산을 수행할 때에는 리틀 엔디안 방식이 더 효율적입니다. 하지만 데이터의 각 바이트를 배열처럼 취급할 때에는 빅 엔디안 방식이 더 적합합니다.