2017. 3. 31. 17:17 C++/정보
C++] Little Endian VS Big Endian
[ Little Endian과 Big Endian 비교 ]
Endian)
- 자료형은 보통 1바이트~8바이트까지 여러 범위를 갖는다. 이러한 여러 바이트로 되어있는
자료를 하나의 데이터로 간주하여 어떤 바이트 순서대로 데이터를 나열 할 것인지 정의하고
나타내기 위해 사용된다.
Little Endian)
- 주소가 낮은 쪽에 최하위 비트 저장
- x86 개열의 CPU(Intel/AMD)에서 사용
- 대부분의 데스크톱 컴퓨터에서 사용됨
- ex) 0x00001234 => 34 12 00 00
- ex) 0x12345678 => 78 56 34 12
Big Endian)
- 주소가 낮은 쪽에 최상위 비트 저장
- 모토로라 계열의 CPU
- 네트워크의 기본 형식으로 사용됨
- ex) 0x00001234 => 00 00 12 34
- ex) 0x12345678 => 12 34 56 78
상식)
가산기가 덧셈을 하는 과정은 LSB로부터 시작하여 자리 올림을 계산해야 하므로, 첫 번째 바이트가 LSB인 리틀 엔디언에서는 가산기 설계가 조금 더 단순해진다. 빅 엔디언에서는 가산기가 덧셈을 할때 마지막 바이트로부터 시작하여 첫 번째 바이트까지 역방향으로 진행해야 한다. 그러나 오늘날의 프로세서는 여러개의 바이트를 동시에 읽어들여 동시에 덧셈을 수행하는 구조를 갖고 있어 두 엔디언 사이에 사실상 차이가 없다.
LSB : 최하위 비트 우선. 최하위 비트부터 채우는 것.
MSB : 최상위 비트 우선. 최상위 비트부터 채우는 것.
'C++ > 정보' 카테고리의 다른 글
C++] 자료형 크기 및 범위 정리 (0) | 2017.04.13 |
---|---|
C++] htons(), htonl(), ntohs(), ntohl() (0) | 2017.03.31 |
C++] 메모리 에러의 의미 (0) | 2017.01.09 |
C++] char to CString / CString to char / CString to int (0) | 2016.12.22 |
C++] 쉬어가기 - C++ 접근제한자 (0) | 2016.12.14 |