发布网友 发布时间:2022-04-19 16:02
共1个回答
热心网友 时间:2023-09-03 04:14
摘要您好,IP地址转换过程如下:IP地址总是由4个0-255的数字以"."隔开的形式来显示给用户,例如192.168.10.35。在计算机中,一个IP地址用4字节来依次存储其从右到左的4个数字部分,每个字节(8比特)以2进制的形式存储相应的IP地址数字,请你实现一个从IP地址的显示格式到计算机存储格式的转换。Input每行输入一个IP地址,如果输入为-1,结束输入Output每行输出一个IP地址在计算机存储中以二进制表示的4字节内容Sample Input192.168.0.1255.255.0.01.0.0.1-112341234Sample Output110000001010100000000000000000011111111111111111000000000000000000000001000000000000000000000001123123题解定义容器vector对字符串进行存储,利用字符’.'对字符串进行分割,并将分割的字符转换成对应的实数,将实数转换成二进制数,并倒序进行输出。咨询记录 · 回答于2021-11-10192.168.10.35这一IP地址的转换过程您好,IP地址转换过程如下:IP地址总是由4个0-255的数字以"."隔开的形式来显示给用户,例如192.168.10.35。在计算机中,一个IP地址用4字节来依次存储其从右到左的4个数字部分,每个字节(8比特)以2进制的形式存储相应的IP地址数字,请你实现一个从IP地址的显示格式到计算机存储格式的转换。Input每行输入一个IP地址,如果输入为-1,结束输入Output每行输出一个IP地址在计算机存储中以二进制表示的4字节内容Sample Input192.168.0.1255.255.0.01.0.0.1-112341234Sample Output110000001010100000000000000000011111111111111111000000000000000000000001000000000000000000000001123123题解定义容器vector对字符串进行存储,利用字符’.'对字符串进行分割,并将分割的字符转换成对应的实数,将实数转换成二进制数,并倒序进行输出。includestdc++.h>using namespace std;vectormv;void init() {\x09string st="0";\x09while (st != "-1") {\x09\x09string st2;\x09\x09cin >>st2;\x09\x09st = st2;\x09\x09if (st != "-1") {\x09\x09\x09mv.push_back(st);\x09\x09}\x09}}void solve() {\x09for (vector::iterator i = mv.begin(); i != mv.end(); i++) {\x09\x09string p =*i;\x09\x09//cout << p << endl;\x09\x09vectorbits;\x09\x09vectormch;\x09\x09for (int j = 0; j <= p.size(); j++) {\x09\x09\x09\x09\x09\x09if (p[j] != '.'&&j!=p.size()) {\x09\x09\x09\x09//cout << p[j] <<"h"<< endl;\x09\x09\x09\x09mch.push_back(p[j]);//分割字符\x09\x09\x09}\x09\x09\x09else {\x09\x09\x09\x09int num=0;\x09\x09\x09\x09int l = mch.size()-1;\x09\x09\x09\x09for (int k = 0; k < mch.size(); k++) {//将字符转换成数字\x09\x09\x09\x09\x09num = num + (mch[k]-'0') * (int)pow(10, l);\x09\x09\x09\x09\x09l--;\x09\x09\x09\x09}\x09\x09\x09\x09//cout << num << endl;\x09\x09\x09\x09mch.clear();\x09\x09\x09\x09int mn[10] = { 0 };\x09\x09\x09\x09int i = 0;\x09\x09\x09\x09while (num != 0)//该循环将十进制转为二进制并存入数组a\x09\x09\x09\x09{\x09\x09\x09\x09\x09mn[i++] = num % 2;\x09\x09\x09\x09\x09num /= 2;\x09\x09\x09\x09}\x09\x09\x09\x09for (int m = 7; m >= 0; m--) {//将二进制数倒叙存入bits中\x09\x09\x09\x09\x09bits.push_back(mn[m]);\x09\x09\x09\x09}\x09\x09\x09}\x09\x09}\x09\x09for(int n=0;n