字串和十六進位之間的轉換方法:
/****************************************************************************<br />函數名稱: str_to_hex<br />函數功能: 字串轉換為十六進位<br />輸入參數: string 字串 cbuf 十六進位 len 字串的長度。<br />輸出參數: 無<br />*****************************************************************************/<br />static int str_to_hex(char *string, unsigned char *cbuf, int len)<br />{<br />BYTE high, low;<br />int idx, ii=0;<br />for (idx=0; idx<len; idx+=2)<br />{<br />high = string[idx];<br />low = string[idx+1];</p><p>if(high>='0' && high<='9')<br />high = high-'0';<br />else if(high>='A' && high<='F')<br />high = high - 'A' + 10;<br />else if(high>='a' && high<='f')<br />high = high - 'a' + 10;<br />else<br />return -1;</p><p>if(low>='0' && low<='9')<br />low = low-'0';<br />else if(low>='A' && low<='F')<br />low = low - 'A' + 10;<br />else if(low>='a' && low<='f')<br />low = low - 'a' + 10;<br />else<br />return -1;</p><p>cbuf[ii++] = high<<4 | low;<br />}<br />return 0;<br />}</p><p>/****************************************************************************<br />函數名稱: hex_to_str<br />函數功能: 十六進位轉字串<br />輸入參數: ptr 字串 buf 十六進位 len 十六進位字串的長度。<br />輸出參數: 無<br />*****************************************************************************/<br />static void hex_to_str(char *ptr,unsigned char *buf,int len)<br />{<br />for(int i = 0; i < len; i++)<br />{<br />sprintf(ptr, "%02x",buf[i]);<br />ptr += 2;<br />}<br />}<br />