一、字符串转换为十六进制的整形:
int hex_string_to_u8(const char *hex_str, uint8_t *out){if(strlen(hex_str) & 1){//长度是否为奇数printf("hex_str is error!\n");return -1;}char byte[3] = {0};const char *p = hex_str;int j = 0;for(int i=0; i<strlen(hex_str); i+=2){memcpy(byte, &p[i], 2);out[j++] = strtol(byte, NULL, 16);} return 0;}
二、十六进制的整形转换为字符串:
int arrayToStr(uint8_t *buf, uint8_t buflen, char *out){char strBuf[400] = {0};char pbuf[400];int a,i;a=0;memset(pbuf,0,400);for(i = 0; i < buflen; i++){a+= sprintf(pbuf+a, "%02X", buf[i]);}strncpy(out, pbuf, buflen*2);out[buflen*2] = '\0';//return buflen * 2;}