CS/CS
[CS] 리틀 엔디안, 빅 엔디안
sihyeong
2022. 12. 16. 21:44
엔디안
- 엔디안은 컴퓨터 메모리와 같은 1차원 공간에 여러 개의 연속된 대상을 배열하는 방법을 뜻한다.
- 큰 단위가 앞에 나오는 빅 엔디안
- 작은 단위가 앞에 나오는 리틀 엔디안
- 두 경우에 속하지 않거나 둘 모두 지원하는 미들 엔디안이라 부른다.
빅엔디안
- 빅엔디안은 최상위 바이트(MSB - bit 영역의 제일 왼쪽) 부터 차례로 저장하는 방식이다.
- 빅엔디안은 사람이 숫자를 쓰는 방법과 같이 큰 단위의 바이트가 앞에 오는 방식이다.
- 0x1234를 표현하면 (12 34)로 표현된다.
- 오늘날 사용하는 대부분의 pc에서의 사용 방식
리틀엔디안
- 리틀엔디안은 최하위 바이트(LSB - bit 영역의 제일 오른쪽) 부터 차례로 저장하는 방식이다.
- 리틀엔디안은 작은 단위의 바이트가 앞에 온다.
- 0x1234를 표현하면 (34 12)로 표현된다.
- 네트워크 환경에서의 사용 방식
아래의 그림은 12345678을 빅 엔디안과 리틀 엔디안으로 표현한 그림이다.
오늘날 x86 아키텍처를 사용하는 대부분의 데스크톱 컴퓨터는 거의 리틀 엔디안을 쓴다.
역사적으로 라우팅이 전화를 거는 식으로 접두 부호로 이루어졌기 때문에
네트워크 환경에서는 빅 엔디안을 사용한다.
따라서 pc와 네트워크 환경에서의 데이터 전송 시 이러한 엔디안을 맞춰주지 않으면 엉뚱한 값을 주고 받게 된다.
pc에서는 데이터를 보내기 전 빅엔디안 형식으로 바꾼 뒤 데이터를 네트워크에 보내야 한다.
이러한 두 엔디안은 서로 다른 장단점을 가지고 있다.
장단점
빅 엔디안 :
- 읽고 쓰는 방식이 사람이 읽고 쓰는 방식과 같아 디버그 하기 편하다.
- 수를 비교할 때 큰수부터 바로 비교하기 때문에 비교할 땐 빅 엔디안이 빠르다.
리틀 엔디안 :
- 메모리에 저장된 하위 바이트들만을 사용할 때 별도의 계산이 필요없어 하위비트는 보통 타입의 시작 주소로 사용되어 형 변환 시 별도의 계산없이 할 수 있어 속도가 빠르다.
- 수를 더할 때 하위 비트들의 계산이 필요하기 때문에 산술은 리틀 엔디안이 더 빠르다.