==================================================================================
typedef struct {
int iTemp_a ;
char sTemp_a[4+1];
}TEMP_HEX;
memset(&temphex , 0x00 , sizeof(temphex));
temphex.iTemp_a = 300;
sprintf(temphex.sTemp_a,"%x",temphex.iTemp_a);
printf("*---------------------------*\n");
printf("* IntToHex *\n");
printf("*---------------------------*\n");
printf(" iTemp_a :[%d]\n",temphex.iTemp_a);
printf(" sTemp_a :[%s]\n",temphex.sTemp_a);
printf("*---------------------------*\n");
이렇게 해도 되네요..
============================================================================
Intotheblue 님이 쓰신 글 :
: 뭔가 생각을 잘 못하고 있는것 같네요.
:
: 2 byte 에 65535 저장되어 있을경우..
: 이걸 16 진수로 해석하면 0xffff 가 되죠
: 이건 뭐 따로 변환하고 자시고 할 필요 없는겁니다.
: 같은값을 2진수냐,10진수냐,16진수로 처리하느냐에 따라서 다른건 뿐입니다.
: 그냥 65535를 보내면 되는겁니다.
:
: 보통은 16진수로 변한한다고 하는건..
: string 형태로 바꾸는건데..이건 2 byte 에 들어갈수가 없고 4바이트가 필요합니다.
:
: 참고로 빌더에서는
: IntToHex - int 를 16진수 형태 string 으로
: StrToInt 로 "0xff" 등을 int 값으로 전환이 됩니다.
:
:
: 준오아빠 님이 쓰신 글 :
: : 데이터통신할때 전문길이를 주고 받는데 특정업체의 경우 16진수 처리를 하고있습니다.
: : 65535를 16진수로 변환 하면 0XFFFF 인데
: : char 배열에 a[0] = 0XFF, a[1] = 0XFF 로 저장됩니다.
: :
: : C언어로 이렇게 변환하는 소스는 어떻게 구현할까요?
: : 쉬운것 같은데 잘 안되네요
: :
: : 1. 65535범위 이내 10진수 숫자를 16진수로 변환하여 char 배열 2Byte에 넣는방법
: : 2. char 배열 2Byte에 저장된 16진수값을 10진수로 변환하는 방법
: :
: : 아시는 분은 댓글 달아주세요
|