반응형
엔디안은 메모리에 저장되는 바이트 순서와 관련이 있다.
예를 들어 0x12345678라는 데이터를 저장한다고 한다면
빅-엔디안에서는 아래와 같이 메모리의 낮은 주소번지에서부터 높은 주소번지로 저장이 된다.
낮은번지 ----------------> 높은번지
0x12 |
0x34 |
0x56 |
0x78 |
하지만 리틀-엔디안에서는 빅-엔디안과 반대로 저장을 하게된다.
낮은번지 ----------------> 높은번지
0x78 |
0x56 |
0x34 |
0x12 |
보통 빅-엔디안은 매킨토시에 사용되는 모토롤라 CPU, 리눅스, JVM이 이 방법을 채택하고 있으면 리틀-엔디안은 우리가 보통 사용하고 있는 Intel계열의 CPU가 이 방법을 사용하고 있다.
빅-엔디안은 사람이 보기에 매우 직관적이다. 하지만 리틀-엔디안도 매우 강력한 장점을 가지고 있다. 예를 들어 2바이트을 4바이트로 확장한다고 한다면
빅-엔디안에서는
0x12 |
0x34 |
0x00 |
0x00 |
0x12 |
0x34 |
위의 그림과 같이 기존의 값을 뒤로 밀어버려야지 제대로된 값을 가진 형확장이 이루어진다.
하지만 리틀-엔디안에서는
0x34 |
0x12 |
0x34 |
0x12 |
0x00 |
0x00 |
위 그림처럼 원래 뒤집혀 있기 때문에 그냥 뒤에 추가만 해주면 형확장이 이루어진다.
[출처] Big Endian, Little Endian|작성자 스쿨쥐
반응형
댓글