场景:
1.有时候需要把十六进制的颜色值转换为整型值。
2.有时候需要生成二进制格式的特定文件。
#include <stdio.h>
#include <stdint.h>
#include <assert.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
size_t ConvertHexStrToInt(const char* hex_str,size_t length)
{
size_t sum = 0;
for(size_t i = 0;i < length; ++i)
{
int asc = (int)hex_str[i];
size_t r1 =(asc & 0x40)?(asc&0x0F)+0x9:(asc & 0x0F);
sum+=(r1*pow(16,length-i-1));
}
return sum;
}
uint8_t * ConvertToBinBuf(const char* hex_str,size_t *buf_size)
{
if(!hex_str)
{
*buf_size = 0;
return NULL;
}
//1.偶数个
size_t len = strlen(hex_str);
assert(!(len%