将 4 字节 IP 地址转换为标准点分十进制表示法
如果我有一个 4 字节地址存储在 char address[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 和很快。
我该怎么做?
If I have a 4 byte address stored in char address[4] and the contents are:
address[0] = '\x80';
address[1] = '\xAB';
address[2] = '\x0A';
address[3] = '\x1C';
// all together: 80 AB 0A 1C
I want to convert it to a character array that looks like "128.171.10.28", since 80 in hex is 128, AB in hex is 171 and so on.
How can I do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
或
或,正如 dreamlax 所指出的:
or
or, as pointed out by dreamlax:
IP 地址只是打印为十进制的各个八位字节,并以 .
您可能应该将
char address[4]
设为unsigned char address[4]
An IP address ist just the individual octets printed as decimal separated by a .
You probably should make your
char address[4]
anunsigned char address[4]
使用 %u 会更好。
Using %u would be even better.