인코딩을 공부하면서, 바이트 오더링이라는 단어를 들어보았다. 처음 들어본 단어라, 간단하게 정리해보려 한다.
Endianness
- 엔디언
- 1차원의 공간에 여러 개의 연속된 대상을 배열하는 방법을 의미
Byte Order
- 컴퓨터는 메모리라는 장치에 정보를 나열하여 저장한다.
- 이러한 점에서 Endianness 방법을 사용하며, 특히 이렇게 컴퓨터에 있어서 바이트를 배열하는 방식을 바이트 오더라 부른다.
종류
종류 | 0x1234의 표현 | 0x12345678 |
---|
Big Endian | 12 34 | 12 34 56 78 |
Little Endian | 34 12 | 78 56 34 12 |
- Big Endian
- 큰 단위의 Byte가 앞에 오는 방법
- 네트워크가 주소를 쓰는 방식
- 장점
- 디버깅을 편하게 해줌
- 사람이 숫자를 읽고 쓰는 방식과 같기 때문에 디버깅시 메모리 값을 보기 편함
- Little Endian
- 작은 단위의 Byte가 앞에 오는 방법
- x86 아키텍쳐 사용 (인텔 포맷)
- 장점
- 메모리 저장 값의 하위 바이트만 사용할 때 별도 계산이 필요없음
- 0x2A = 2A 00 00 00
- 앞 두바이트 혹은 한 바이트만 떼어내면 바로 하위 비트를 얻을 수 있음
- 빅 엔디언의 경우에는 변수 주소에 2바이트 혹은 3바이트를 더해야 함