자세한건 아래 링크들을 참조할 것.
http://en.wikipedia.org/wiki/Endianness
http://en.wikipedia.org/wiki/Least_significant_bit
http://ssulsamo.egloos.com/3150581
least significant bit(LSB)는 그 비트로 표현되는 수가 변할 때 그에 따라 즉시 변화되는 bit로서, 가장 낮은 자리에 있는 bit이다.
가장 낮은 자리를 가장 우측에 표현하는 경우에, LSB는 가장 우측의 비트를 가리킨다.
most siginificant bit(MSB)는 정확히 반대이다.
광의의 Endianness는 긴 데이터가 저장 혹은 직렬 전송될 때, 데이터의 각 조각이 배열 되는 순서을 말한다. 여기서 조각은 8,16,32bit 단위 등 다양할 수 있다. 협의의 경우는 16bit 혹은 그 이상의 크기를 가진 워드 상에서 바이트 단위의 데이터 조각이 배열되는 순서이다. Endianness는 데이터 조각(Componemt)의 전송 및 저장 순서을 말하는 것이므로 Endianness가 다르다고 MSB와 LSB가 달라지는 것이 아니다.
int n=1;일 때 LSB 값은 엔디언에 관계없이 1이다. 주소에 따른 저장순서가 엔디언에 따라 다를 뿐이다.
순서에는 크게 빅 엔디언(Big Endian), 리틀 엔디언(Little Endian), 앞 두가지가 혼합된 Mixed Endian이 있다.
Mixed Endian의 한 예는
(16bit 워드에서 바이트가 놓이는 순서와 좀 더 넓은 시각에서 32bit에서 16bit가 놓이는 순서가 서로 다른 경우이다.
데이터의 각 조각에 주소를 부여한다면
빅 엔디언에서는 most siginificant 조각(보통은 바이트)이 가장 앞에, 가장 낮은 주소에 놓인다.
리틀 엔디언은 그 반대이다.
빅엔디언은 Intel 프로세서 계열, 리틀엔디언은 Sparc,RISC 프로세서 계열에서 쓰인다.
전송에 사용되는 네트워크 바이트 순서는 TCP/IP의 경우 빅엔디언 방식을 쓴다.
'System-level프로그래밍' 카테고리의 다른 글
(windows.h) QueryPerformanceFrequency,... (0) | 2010.01.05 |
---|---|
여기서 플랫폼이란? (0) | 2009.09.02 |
(WINAPI) LPCWSTR 같은 유니코드 문자셋 이용 타입 (0) | 2009.06.05 |
(WINAPI) 어떤 시스템콜을 썼는데 "indetifier not found" (0) | 2009.06.05 |
WIN32API refernece (0) | 2009.04.29 |