1. 엔디언(Endianness) 이란? |
컴퓨터를 전공하는 사람이라면, 한번 쯤은 들어볼 법한, 아니, 당연히 들어야 하는 용어라고 할 수 있다.
엔디언이란 컴퓨터의 메모리와 같은 1차원 공간에 여러 개의 연속된 대상을 배열하는 방법을 뜻합니다.
특히, 바이트를 배열하는 방법을 바이트 순서 (Byte order) 이라고 합니다.
엔디언은 크게 3가지로 나눌 수 있습니다.
1. 빅 엔디안(Big-endian) : 큰 단위가 앞에 나오는 것을 말함.
2. 리틀 엔디안(Little-endian) : 작은 단위가 앞에 나오는 것을 말함.
3. 미들 엔디안(Middle-endian) : 두 경우에 속하지 않거나, 둘을 모두 지원하는 것을 말함.
2. 바이트 순서에 따른 엔디안 |
1번에서 말한 것처럼, 바이트 순서에 따라서 빅 엔디안과 리틀 엔디안으로 나눌 수 있다.
빅 엔디안은 보통 사람이 숫자를 쓰는 방법이라고 생각하면 된다.
큰 단위의 바이트가 앞에 오는 것을 말한다.
[참고 자료 : 위키백과]
리틀 엔디안은 작은 단위의 바이트가 앞에 오는 것을 말한다.
[참고 자료 : 위키백과]
미들 엔디언은 2바이트 단위와 1바이트 단위로 서로 다른 순서를 사용한다.
다음 표로 엔디안을 비교해보자.
종류 |
0x1234의 표현 방식 |
0x1234567의 표현 방식 |
빅 엔디안 |
12 34 |
12 34 56 78 |
리틀 엔디안 |
34 12 |
78 56 34 12 |
미들 엔디안 | - | 34 12 56 78 |
3. 장단점 |
빅 엔디안 : 사람이 숫자를 읽고 쓰는 방법과 같아서 디버깅 과정에서 메모리의 값을 보는 데 편리하다.
예를 들면, 0x51236412은 빅 엔디언으로 51 23 64 12 로 표현할 수 있다.
즉, 메모리에 위에서부터 아래로 순서대로 들어간다고 생각하면 되므로, 사람이 생각하기에는 쉽다.
리틀 엔디안 : 메모리에 저장된 값의 하위 바이트들만 사용할 때, 별도의 계산이 필요 없다.
예를 들면, 0x2A를 리틀 엔디언으로 표현하면 2A 00 00 00 이 된다.
이것은 앞의 두 바이트 또는 한 바이트만 떼어내면 하위 16비트 또는 8비트를 바로 얻을 수 있다.
반면에, 빅 엔디언에서는 하위 16비트나 8비트 값을 얻으려면 변수 주소에 2바이트 또는 3바이트를 더해야 하는 번거로움이 있다.
'컴퓨터 관련' 카테고리의 다른 글
저장단위 KiB, MiB, GiB, TiB - 키비바이트, 메비바이트, 기비바이트, 테비바이트 정리 (0) | 2018.03.28 |
---|---|
[포토샵] 포토샵 글씨체(폰트) 추가하기 feat.배달의 민족 글꼴 (0) | 2018.03.18 |
[전산] RAID 정리 (0) | 2017.09.25 |
언어별 번역 추천 페이지 [Microsoft Language Portal] (0) | 2017.09.13 |
비주얼 스튜디오 속도 빠르게 하기 | MP(Multicore-Process) 옵션으로 빌드시간 단축하는 방법 (0) | 2017.09.10 |
댓글