메모리에 다바이트(Multi-byte) 데이터를 저장하는 순서인 엔디안(Endianness) 개념을 정리했다.
데이터 저장 방식 비교
4바이트 데이터 0x12345678 저장 시 설계 방식에 따른 차이이다.
메모리 주소: 100 101 102 103
-----------------------------------
빅 엔디안: 12 34 56 78 (상위 바이트부터 저장)
리틀 엔디안: 78 56 34 12 (하위 바이트부터 저장)
- 빅 엔디안(Big-endian): 최상위 바이트(MSB)부터 순차적으로 저장한다.
가독성이 높고 직관적이다.
네트워크 전송 표준(TCP/IP)으로 사용된다.
- 리틀 엔디안(Little-endian): 최하위 바이트(LSB)부터 저장한다.
산술 연산 시 올림수(Carry) 처리에 효율적이다.
인텔(x86) 계열 CPU에서 주로 채택한다.
데이터 규약의 중요성
엔디안은 데이터를 해석하는 관점의 차이이다.
서로 다른 엔디안 방식을 사용하는 시스템 간 데이터 교환 시 변환 과정이 누락되면 데이터 왜곡이 발생한다.
시스템 하부의 데이터 저장 규약을 이해하는 것이 중요하는 것 같다.