Big Endian(빅 엔디안), Little Endian(리틀 엔디안)

Ena JJJ·2022년 11월 22일
1

컴퓨터에서 메모리에 수를 저장할 때, 우리가 생각하는 방법, 즉, 낮은 주소 값에 상위 비트를 적는 방식을 빅엔디안 방식 이라 한다. 그리고 정반대로 높은 주소 값에 하위 비트를 적는 방식을 리틀 엔디안 이라 한다.

빅 엔디안

낮은 주소 데이터에 높은 바이트(MSB)부터 저장하는 방식이다. 평소에 우리가 숫자를 사용하는 선형방식과 같은 방식이다. 메모리에 저장된 순서 그대로 읽을 수 있으며 이해하기가 쉽다. SPARC을 포함한 대부분 RISC CPU계열에서 이 방식으로 저장한다.

4byte크기의 정수가 있다고 가정할 때, 0x12345678 4개의 1byte로 구성되어 저장된다.

리틀 엔디안

낮은 주소에 데이터의 낮은 바이트(LSB)부터 저장하는 방식이다. 대부분의 인텔 CPU계열에서는 이 방식으로 저장한다.

리틀 엔디안 VS 빅 엔디안

어느 방식이 더 우수하다 할 수 없지만, 물리적으로 데이터를 조작하거나 산술 연산을 수행할 때 리틀 엔디안 방식이 더 효율적이다.
하지만 데이터의 각 바이트를 배열처럼 취급할 땐 빅 엔디안 방식이 더 적합하다. 또한 숫자 비교를 할 때에는 빅 엔디안이 더 빠르다.

대부분의 인텔 기반 프로세스는 리틀 엔디안 방식을 사용한다. 하지만 네트워크를 통해 데이터를 전송할 때에는 빅 엔디안 방식을 사용한다. (네트워크 바이트 오더 라는 규약이 정해져 있다)

리틀엔디안이 산술연산에 적합한 이유

위와같은 덧셈을 할 때 CPU도 사람처럼 오른쪽에서 왼쪽으로 먼저 계산을 한다. 수치 계산 시에는 리틀엔디안이 빅 엔디안볻 속도가 빠른 이유는 두 숫자를 계산할 경우 가장 낮은 자리수에 있는 숫자를 계산 한 후, 자리 올림수가 있는지 없는지 판단하고 자리 올림수와 다음 숫자를 계산하며, 리틀 엔디안에서는 사람이 일반적으로 계산하는 방식처럼 캐리 처리가 수월하기 때문이다.

0개의 댓글