码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-02-03 18:52:21      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:

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 == 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转换成点分十进制式

标签:

原文地址:http://www.cnblogs.com/aqing1987/p/4270511.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!