새소식

인기 검색어

컴퓨터/컴퓨터

엔디안(Endianness)

  • -

엔디안(Endianness)

- 컴퓨터의 메모리와 같은 1차원 공간에 여러 개의 연속된 대상을 배열하는 방법.
- 바이트를 배열하는 방법은 바이트 순서(Byte Order)라고 한다.

 

엔디안의 종류

- 빅 엔디안, 리틀 엔디안, 바이 엔디안, 미들 엔디안 방식이 존재하며

빅 엔디안은 최상위 바이트(MSB - Most Significant Byte) 부터 차례로 저장하는 방법이고

 

리틀 엔디안은 최하위 바이트(LSB - Least Significant Byte) 부터 차례로 저장하는 방법이다.

 

그리고 바이 엔디안은 빅 엔디안과 리틀 엔디안 중 하나를 선택하는 방식을 이야기한다.


미들 엔디안은 한 방향으로 순서가 정해져 있는게 아니라, 32비트 정수가 2바이트 단위(16비트)로는 빅 엔디안으로 그 안

 

에서 1바이트 단위로는 리틀 엔디안인 방식이다.

 

리틀 엔디안과 빅 엔디안

이 중에서 자주 접하게 되는 두 개념인 리틀 엔디안과 빅 엔디안 방식을 간략하게 예를 들어 설명해보면

 

예시) 데이터 : 0x12345678를 저장할 때

빅 엔디안 : 0x12  0x34  0x56  0x78 순서대로 메모리에 저장하고

리틀 엔디안 : 0x78  0x56  0x34  0x12 순서대로 메모리에 저장한다.

 

오늘날 x86 아키텍처를 사용하는 대부분의 데스크톱 컴퓨터는 리틀 엔디안을 사용하며 이를 '인텔 포맷' 이라 한다.

 

거꾸로 네트워크에서는 주소를 빅 엔디언으로 쓰는데, 역사적으로 라우팅이 전화를 거는 식으로 접두 부호로 이루어졌기

 

때문이다.

 

리틀 엔디안과 빅 엔디안의 차이

빅 엔디안은 사람이 숫자를 읽고 쓰는 방법과 같기 때문에 소프트웨어의 디버그를 편하게 해주는 경향이 있으며

리틀 엔디안은 메모리에 저장된 값의 하위 바이트들만 사용할 때 별도의 계산이 필요 없다는 장점이 있다. 4바이트 중에서

 

앞의 두 바이트 또는 한 바이트만 떼어내면 바로 하위 1 또는 2바이트를 바로 얻을 수 있다. 

일반적으로 인텔 프로세서에서는 리틀 엔디안 방식을 사용하지만 네트워크 데이터 전송 과정에서는 빅 엔디안 방식을 사

 

용하기 때문에 데이터를 전송할 때는 전송하고자 하는 데이터를 빅 엔디안으로 변경해주어야 한다.


두 값을 비교할 때는 빅 엔디안이 유리하다. 비교는 가장 큰 값이 들어가는 왼쪽부터 하게 되는데, 빅 엔디안은 숫자 앞에서

 

부터, 리틀엔디안은 숫자 뒤에서부터 스택에 집어넣기 때문이다.

수치를 계산할 때는 리틀엔디안이 유리하다. 두 숫자를 계산할 때는 가장 낮은 자리의 숫자를 계산하고 올림수가 있는지 판

 

단하고 나서 다음 윗자릿수의 계산을 수행하기 때문이다.

빅 엔디안은 UNIX의 RISC 프로세서 또는 네트워크에서 사용하는 바이트 오더이고, 리틀 엔디안은 intel 계열의 프로세서

 

에서 주로 사용하는 바이트 오더이다.

'컴퓨터 > 컴퓨터' 카테고리의 다른 글

범용 레지스터  (0) 2021.08.10
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.