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]);总结
以上是内存溢出为你收集整理的将4字节ip地址转换为标准点分十进制表示法全部内容,希望文章能够帮你解决将4字节ip地址转换为标准点分十进制表示法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)