태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

티스토리 툴바



2009/04/27 19:25

Big-Endan Little-Endan

short 메모리 값을 네트워크 바이트 순서에서 호스트 바이트 순서로 변경합니다.

호스트 바이트 순서란 지금 사용 중인 시스템에서 2바이트 이상의 큰 숫자 변수에 대해 바이트를 메모리 상에 어떻게 배치하는지 순서를 말하며, 네트워크 바이트 순서는 2 바이트 이상의 큰 숫자에 대해 어떤 바이트부터 전송할지에 대한 순서를 말합니다.

1 바이트 크기의 자료를 다른 시스템으로 전송할 때에는 문제가 없습니다만 2 바이트 이상의 큰 순자를 전송할 때, 큰 단위를 먼저 전송할 지 아니면 작은 단위의 값을 먼저 전송할 지를 미리 정하지 않으면 문제가 발생합니다.

, 16진수 값 0x1234와 같은 두 바이트 값은 시스템에 따라서 메모리에 저장할 때 작은 단위의 값부터 0x34, 0x12 순서로 저장하는 Little-Endian을 사용하는 시스템이 있는가 하면, 반대로 큰 단위의 값부터 0x12, 0x34식으로 저장하는 Big_Endian 시스템이 있습니다. 이렇게 바이트 배열 순서가 서로 다르다면 2바이트 이상의 큰 숫자를 전송할 때 어느 바이트가 큰 단위의 값인지를 모른다면 혼란이 발생할 것이므로 당연히 서로 전송하는 방식을 맞추어야 하는데, 네트워크에서는 Big-Endian을 사용합니다.

#include <stdio.h>

#include <arpa/inet.h>

 

int main( void)

{          

   short host_byte    = 0x3412;

  

   printf( "%x to %x\n", host_byte, ntohs( host_byte));

 

   return 0;

}


'C언어' 카테고리의 다른 글

IEEE 754 부동소수점표현 방식  (0) 2009/04/27
Big-Endan Little-Endan  (0) 2009/04/27
Trackback 0 Comment 0