标签:
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); }
标签:
原文地址:http://www.cnblogs.com/aqing1987/p/4270511.html