|
- #include <stdio.h>
- #include <string.h>
- #include <stdint.h>
- void HEXtoASCII(char* input_array,uint16_t input_length,char *outputarray);
- int main()
- {
- char *HEX_Str = "6867";
- char ASCII_Str[50] = {0};
- HEXtoASCII(HEX_Str,strlen(HEX_Str),ASCII_Str);
- printf("%s\r\n",ASCII_Str);
- return 0;
- }
- void HEXtoASCII(char* input_array,uint16_t input_length,char *outputarray)
- {
- uint16_t i;
- for(i = 0; i < input_length;i+=2)
- {
- if(input_array[i] >= '0' && input_array[i] <= '9')
- outputarray[i/2] = input_array[i] - '0';
- else if(input_array[i] >= 'a' && input_array[i] <= 'z')
- outputarray[i/2] = input_array[i] - 'a' + 10;
- else if(input_array[i] >= 'A' && input_array[i] <= 'Z')
- outputarray[i/2] = input_array[i] - 'A' + 10;
- outputarray[i/2] <<= 4;
- if(input_array[i + 1] >= '0' && input_array[i + 1] <= '9')
- outputarray[i/2] += input_array[i + 1] - '0';
- else if(input_array[i + 1] >= 'a' && input_array[i + 1] <= 'z')
- outputarray[i/2] += input_array[i + 1] - 'a' + 10;
- else if(input_array[i + 1] >= 'A' && input_array[i + 1] <= 'Z')
- outputarray[i/2] += input_array[i + 1] - 'A' + 10;
- }
- }
复制代码 纯C风格
|
|