byte order

programming/TCP/IP 2006. 12. 12. 09:07

byte order : 시스템 내부적으로 데이터를 표현하는 방법

host byte order (시스템마다 표현 방식이 다름)
network byte order (Big Endian 방식만을 사용하기로 약속)

Big Endian : 상위 바이트 값이 메모리상에 먼저 표시됨 (RISC 프로세서)
Little Endian : 하위 바이트 값이 메모리상에 먼저 표시됨 (인텔계열 프로세서)

ex)
실          제  :  0x 12 34 56 78
Big   Endian :  0x 12 34 56 78
Little Endian :  0x 78 56 34 12

unsigned short htons_cst(unsigned short htons)
{
int cnt = 0;
char temp = '\0';
char * endian = (char *)&htons;
 
temp = endian[0];
endian[0] = endian[1];
endian[1] = temp;

return htons;
}

AND