将IP地址转换为整数
2015-10-05 22:14
281 查看
#include<iostream> #include<math.h> using namespace std; int main() { char ip[16]; char temp[4][4]; cin>>ip; char *delim=".";//分隔符 char *p; unsigned long i=3;//这儿要注意要把字符串反着存放 strcpy(temp[i--],strtok(ip,delim));//strtok字符串分割成一个个片段。参数s指向欲分割的字符串,delim为分隔符. while(p=strtok(NULL,delim)) { strcpy(temp[i--],p); } unsigned long arr[4]; unsigned long strtemp[4][8]; for(i=0;i<=3;i++)//分别将每个字符串转换为数字 { arr[i]=atoi(temp[i]);//将字符串的值转换为整数 cout<<arr[i]<<" "; } cout<<endl; for(i=0;i<=3;i++) { for(unsigned long j=0;j<=7;j++)//将十进制转换为二进制 { strtemp[i][j]=arr[i]%2; arr[i]=arr[i]/2; cout<<strtemp[i][j]; } cout<<endl; } unsigned long sum=0,result;unsigned long (*q)[8]; //这儿一定要注意sum的类型,我开始写的是long型,最后结果出现的是负值,让我调试了好久!! q=strtemp; unsigned long count=0; for(i=0;i<=3;i++) { for(unsigned long j=0;j<=7;j++) { result=ldexp(*(*(q+i)+j),count++); sum+=result; } } cout<<sum<<endl; return 0; }
相关文章推荐
- Google Spanner和F1介绍
- Google Spanner和F1介绍
- [深入理解Java虚拟机]第三章 垃圾收集器及相关参数
- 例题8-2 联合国大楼 UVa 1605
- poj 1753
- 【PostgreSQL学习之旅】第一篇:Linux和Windows下安装PostgreSQL9.4
- 银子暴涨
- 单调队列优化dp [HDU2191][HDU3401][POJ1821]
- PHP开发经验中介(thinkphp3.2使用技巧)
- iOS开发分分钟搞定C语言 —— 函数
- Java集合总结之Collection整体框架
- Swift简单语法
- cocos代码研究(8)持续动作子类学习笔记
- 控制台四则运算
- leetcode 4 : Median of Two Sorted Arrays 找出两个数组的中位数
- iOS编程------集合视图之瀑布流WaterFlowLayout
- Thinkphp 加载类库import()方法
- java 作用域 public private default protected 的差别
- 黑马程序员---成长之路-----OC之基础篇OC的概述
- d3.js学习笔记(二) 柱形图