首页 > 代码库 > 将四字节hex形式IP转换成点分十进制式

将四字节hex形式IP转换成点分十进制式

1、需求描述

将四字节的hex形式IP如

\x0A\xA8\x01\xB5 转换成 点分十进制形式如

“10.168.1.181”

 

2、代码实现

//// convert one byte hex to int str// byte_hex: input byte hex// outdata: output converted int data// int_str_len: the length of the int str//void byte_hex2int_str(const u8 byte_hex, u8 *outdata, u8 *int_str_len){    u8 i = 0, m = 0;    u8 Adata, Bdata;    u8 tmp_res[20] = {0};            Adata = byte_hex;    while (1)    {        Bdata = (Adata % 10);        Adata = (Adata / 10);        tmp_res[i] = Bdata;        i++;        if (Adata =http://www.mamicode.com/= 0)        {            break;        }    }      *int_str_len = i;        for (m = 0; m < i; m++)    {        *(outdata + m) = (tmp_res[i-1-m] + 0x30);         }}//// function: convert ip hex to string//void ip_hex2str(u8 *out_ip_buf, const u8 * in_hex_buf){    u8 int_str_len = 0x00;    u8 i = 0x00;        byte_hex2int_str(in_hex_buf[0], out_ip_buf+i, &int_str_len);    i += int_str_len;    out_ip_buf[i]=.;    i++;        byte_hex2int_str(in_hex_buf[1], out_ip_buf+i, &int_str_len);    i += int_str_len;    out_ip_buf[i]=.;    i++;        byte_hex2int_str(in_hex_buf[2], out_ip_buf+i, &int_str_len);    i += int_str_len;    out_ip_buf[i]=.;    i++;        byte_hex2int_str(in_hex_buf[3], out_ip_buf+i, &int_str_len);    }

将四字节hex形式IP转换成点分十进制式