整数与IP地址间的转换
来源:互联网 发布:mac 好用的卸载软件 编辑:程序博客网 时间:2024/05/18 12:04
#include<bits/stdc++.h>using namespace std;long long StringToLonglong(string s) { long long sum=0; long long k=1; for(int i=s.size()-1;i>=0;i--) { sum+=(s[i]-'0')*k; k*=10; } return sum;}int main(){ char a[100]; while(gets(a)) { char *p=strtok(a,"."); vector<string>v; while(p!=NULL) { string s; for(int i=0;i<strlen(p);i++) s+=p[i]; v.push_back(s); p=strtok(NULL,"."); } if(v.size()==4) { long long sum=0; for(int i=0;i<v.size();i++) sum+=atoi(v[i].c_str())*pow(2,8*(3-i)); cout<<sum<<endl; } else if(v.size()==1) { long long num=StringToLonglong(v[0]); for(int i=0;i<4;i++) { if(i==3)cout<<(num%(long long)pow(2,8*(4-i))-num%(int)pow(2,(3-i)*8))/(int)pow(2,(3-i)*8)<<endl; else cout<<(num%(long long)pow(2,8*(4-i))-num%(int)pow(2,(3-i)*8))/(int)pow(2,(3-i)*8)<<"."; } /* int num1=(num-num%(int)pow(2,24))/(int)pow(2,24); int num2=(num%(int)pow(2,24)-num%(int)pow(2,16))/(int)pow(2,16); int num3=(num%(int)pow(2,16)-num%(int)pow(2,8))/(int)pow(2,8); int num4=num%(int)pow(2,8); cout<<num1<<"."<<num2<<"."<<num3<<"."<<num4<<endl; */ } } return 0;}
阅读全文
0 0
- 整数与IP地址间的转换
- 整数与IP地址间的转换
- 整数与IP地址间的转换
- 整数与IP地址间的转换
- 整数与IP地址间的转换
- 整数与ip地址间的转换
- IP地址与整数之间的转换
- IP地址与整数之间的转换
- IP地址与整数之间的转换
- IP地址与整数之间的转换
- IP地址与整数的相互转换
- ip地址与整数之间的转换
- ip地址与整数之间的转换
- 整数与ip地址之间的转换
- 华为OJ 整数与IP地址间的转换
- 华为OJ(整数与IP地址间的转换)
- Java算法---整数与IP地址间的转换
- 【华为OJ】【030-整数与IP地址间的转换】
- 用于mmgrid表格批量删除的函数
- linux_守护进程
- Spring MVC原理及用法
- iSCSI
- Happiness
- 整数与IP地址间的转换
- Spring注入中byType和byName的总结
- 图像匹配算法之ORB
- HBase基础教程--1.2.X版本--基础知识篇(二)
- 1-jQuery源码之块级作用域
- 如何判断一个SOCKET连接是否已经断开
- 定时器
- 支持emoji表情
- 求n!的算法和C 实现