big endian, little endian

IKNOW·2024년 4월 27일

greate code

목록 보기
5/6

80x86 프로세서는 워드, 더블 워드 데이터를 메모리에 저장할 때, LO 바이트를 특정 주소에 저장하고 HO 바이트는 그에 이어서 높은 주소에 저장한다. 이를 리틀 엔디안 바이트 구조라 부르고.

초기 매킨토시와 같은 특정 프로세서는 역으로 HO바이트를 특정 주소에 저장하고 LO바이트를 그에 이은 주소에 저장하는 방식을 사용하는데 이를 빅 엔디안 바이트 구조라 한다.

컴퓨터는 256의 바이트 값을 리틀엔디안과 빅엔디안은 다음과 같은 형식을 지닌다.

// 256
LO byte: 0
Byte #1: 1
Byte #2: 0
HO byte: 0

//little endian
Byte:   3   2   1   0
256 :   0   0   1   0

//big endian
Byte:   3   2   1   0
256 :   0   1   0   0

엔디안 구조가 다른 시스템간에 데이터를 전송하는 경우 가장 좋은 해법은 특정 정규형으로 값을 변환해 처리하고 이를 다시 원래의 형식으로 변환하는 것이다.

예를 들어 네트워트에서 데이터를 전송하는 TCP/IP를 포함한 주요 네트워크 프로토콜은 빅 엔디안을 사용하기 때문에 정규형식을 빅 엔디안으로 정하는 것이 좋다.

엔디안 타입을 변환할 때는 바이트의 거울스왑 기법을 사용한다.

profile
조금씩,하지만,자주

0개의 댓글