// // Created by YY on 2020/1/7. // #include "xconvert.h" #include #include void ConvertPhoneNum(uint8_t *dst, int length, const char *src) { int p = length - 1; int q = strlen(src) - 1; memset(dst, 0, length); while (q >= 0) { dst[p] = src[q] - '0'; q--; if (q >= 0) { dst[p] |= (src[q] - '0')<<4; p--; q--; } } } void ConvertHex2String(char *str, const uint8_t *hex, int length) { const char HEX[] = "0123456789ABCDEF"; int j = 0; for (int i = 0; i < length; ++i) { str[j++] = HEX[(hex[i]>>4)&0x0F]; str[j++] = HEX[hex[i]&0x0F]; } str[j++] = 0; } void ConvertString2Hex(uint8_t *hex, int length, const char *str) { if (length < strlen(str)/2) return; for (int i = 0, j = 0; i < strlen(str); ++i, ++j) { if (str[i] >= '0' && str[i] <= '9') { hex[j] = str[i] - '0'; } else if (str[i] >= 'A' && str[i] <= 'F') { hex[j] = 10 + str[i] - 'A'; } else if (str[i] >= 'a' && str[i] <= 'f') { hex[j] = 10 + str[i] - 'a'; } hex[j] <<= 4; i++; if (str[i] >= '0' && str[i] <= '9') { hex[j] |= str[i] - '0'; } else if (str[i] >= 'A' && str[i] <= 'F') { hex[j] |= 10 + str[i] - 'A'; } else if (str[i] >= 'a' && str[i] <= 'f') { hex[j] |= 10 + str[i] - 'a'; } } }