加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

将4字节ip地址转换为标准点分十进制表示法

发布时间:2020-12-16 10:28:18 所属栏目:百科 来源:网络整理
导读:如果我在char地址[4]中存储了一个4字节地址,则内容为: address[0] = 'x80';address[1] = 'xAB';address[2] = 'x0A';address[3] = 'x1C';// all together: 80 AB 0A 1C 我想将它转换为一个看起来像“128.171.10.28”的字符数组,因为十六进制中的80是128,
如果我在char地址[4]中存储了一个4字节地址,则内容为:

address[0] = 'x80';
address[1] = 'xAB';
address[2] = 'x0A';
address[3] = 'x1C';

// all together: 80 AB 0A 1C

我想将它转换为一个看起来像“128.171.10.28”的字符数组,因为十六进制中的80是128,十六进制中的AB是171,依此类推.

我怎样才能做到这一点?

解决方法

char saddr[16];
sprintf(saddr,"%d.%d.%d.%d",(unsigned char)address[0],(unsigned char)address[1],(unsigned char)address[2],(unsigned char)address[3]);

要么

char saddr[16];
unsigned char *addr = (unsigned char*)address;

sprintf(saddr,addr[0],addr[1],addr[2],addr[3]);

或者,正如dreamlax所指出的那样:

char saddr[16];
sprintf(saddr,"%hhu.%hhu.%hhu.%hhu",address[0],address[1],address[2],address[3]);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读