/*********************************************************************************** * ------------------------------------------ * * P R O G R A M D E S C R I P T I O N * * ------------------------------------------ * * Module Name : * * Creator : À¯±¤Ãá * DESCRIPTION : * CREATE-DATE : 2012.08. *********************************************************************************** * <<¼öÁ¤»çÇ×>> * * Modifier DATE DESC * * -------- -------- ------------------------------------------------ * * * ***********************************************************************************/ #include #include #include #define SUCC 0 #define FAIL -1 /*---------------------------------------------------------------------------------* * G L O B A L F U N C T I O N S *---------------------------------------------------------------------------------*/ typedef struct{ unsigned char tmpd [10 +1]; unsigned char HValue [10 +1]; unsigned char HValue1[ 4 +1]; unsigned char HValue2[ 4 +1]; int HexToInt ; int number ; int Hexa ; }WK_HEXA; /*---------------------------------------------------------------------------------* * F U C T I O N P R O T O T Y P E *---------------------------------------------------------------------------------*/ int HEXA_Q100(WK_HEXA *pwk_hexa); void VAR_TO_HEXA(void *vlu, int len, char *rStr); int Index =0 ; int main(void) { WK_HEXA wk_hexa,*pwk_hexa; memset(&wk_hexa , 0X00, sizeof(wk_hexa) ); pwk_hexa = &wk_hexa; strncpy(pwk_hexa->HValue ,"0x",2); strncpy(pwk_hexa->HValue1,"0x",2); strncpy(pwk_hexa->HValue2,"0x",2); printf("*---------------------------*\n"); printf("* HexToInt *\n"); printf("*---------------------------*\n"); printf("Á¤¼ö¸¦ ÀÔ·ÂÇϼ¼¿ä. : "); scanf("%d",&pwk_hexa->number); if(pwk_hexa->number > 65536 || pwk_hexa->number <0) { printf("0º¸´Ù Å©°í 65536º¸´Ù ÀÛÀº Á¤¼ö¸¦ ÀÔ·ÂÇϼ¼¿ä\n"); return FAIL; } HEXA_Q100(pwk_hexa); printf("\n"); printf("*---------------------------*\n"); printf(" Hexa :[%s] \n",&(pwk_hexa->HValue) ); printf(" HexToInt :[%d] \n",pwk_hexa->HexToInt); printf(" Hexa1 :[%s] \n",&(pwk_hexa->HValue1)); printf(" Hexa2 :[%s] \n",&(pwk_hexa->HValue2)); printf("*---------------------------*\n"); return SUCC; }; /*»ùÇÿ¹Á¦ Å×½ºÆ®*/ int HEXA_Q100(WK_HEXA *pwk_hexa) { for(Index = 0;Index<4 ;Index++) { pwk_hexa->Hexa = (pwk_hexa->number >> (12-Index*4)) & 0x000F; strncpy(pwk_hexa->tmpd, (char *)(&pwk_hexa->Hexa),1); VAR_TO_HEXA(&pwk_hexa->Hexa,sizeof(pwk_hexa->Hexa), (char *)pwk_hexa->tmpd); sprintf(&pwk_hexa->HValue[Index+2],"%x",pwk_hexa->Hexa); pwk_hexa->HexToInt = pwk_hexa->HexToInt + ( (pwk_hexa->Hexa)<<( 12-Index*4 ) ); } strncpy(pwk_hexa->HValue1+2,pwk_hexa->HValue+2,2); strncpy(pwk_hexa->HValue2+2,pwk_hexa->HValue+4,2); return SUCC; }; void VAR_TO_HEXA(void *vlu, int len, char *rStr) { unsigned char *sVlu = vlu ; register int i ; for(i=0;i