使用输入作为IP地址值给出,任务是将给定IP地址表示为其十六进制等效项。
什么是IP地址
IP地址或Internet协议是一个唯一编号,用于唯一描述您连接到网络的硬件。Internet是指通过网络和协议定义的一组连接必须遵循的规则和规定。仅由于IP地址,一个系统就有可能通过网络与另一个系统通信。IP有两个版本,分别是-IPv4(Internet协议版本4)
IPv6(Internet协议版本6)
IP地址表示为数字序列,格式为-
151.101.65.121
对于此转换,下面的程序使用的是针对互联网操作创建的头文件“ arpa / inet.h”
示例Input-:127.0.0.1
Ouput-:0x7f000001
Input-:172.31.0.2
Output-:0xac1f0002
算法Start
Step1->Declarefunctiontoreverse
voidreverse(char*str)
setintlen=2
setintr=strlen(str)–2
LoopWhile(len
callswap(str[len++],str[r++])
Callswap(str[len++],str[r])
Setr=r–3
End
End
Step2->DeclarefunctiontoconvertIPaddresstohexadecimal
voidconvert(intip_add)
declarecharstr[15]
callsprintf(str,"0x%08x",ip_add)
callreverse(str)
printstr
step3->Inmain()declareintip_add=inet_addr("127.0.0.1")
callconvert(ip_add)
Stop
示例#include
#include
#include
usingnamespacestd;
//反十六进制数
voidreverse(char*str){
intlen=2;
intr=strlen(str)-2;
while(len
swap(str[len++],str[r++]);
swap(str[len++],str[r]);
r=r-3;
}
}
//将IP地址转换为十六进制
voidconvert(intip_add){
charstr[15];
sprintf(str,"0x%08x",ip_add);
reverse(str);
cout<
}
intmain(){
intip_add=inet_addr("127.0.0.1");
convert(ip_add);
return0;
}
输出结果
如果我们运行以上代码,它将在输出后产生0x7f000001