IP地址转换-16进制转化为10进制
来源:互联网 发布:php源码加密 编辑:程序博客网 时间:2024/04/26 07:39
很久之前写的,今天放在这里。
1、不含字母
- #include <iostream>
- #include <stdio.h>
- //8个二进制(2个十六进制)数转换成十进制数,不含a-f。即00-99的转换
- int transfer_0(int x)
- {
- int y;//结果
- int temp;//临时值
- y=x%10;//个位数
- temp=(x%100-y)/10;//十位数
- y+=temp*16;
- return y;
- }
- //32个二进制(4个十六进制)数转换成十进制数,不含a-f。即0000-9999的转换
- void transfer_1(unsigned int x)
- {
- //从右向左
- int temp1=x%100;
- int y1=transfer_0(temp1);
- int temp2=(x%10000-temp1)/100;
- int y2=transfer_0(temp2);
- int temp3=(x%1000000-temp1-temp2*100)/10000;
- int y3=transfer_0(temp3);
- int temp4=(x%100000000-temp1-temp2*100-temp3*10000)/1000000;
- int y4=transfer_0(temp4);
- printf("结果是:%d.%d.%d.%d\n",y4,y3,y2,y1);
- }
- void main()
- {
- unsigned int x;
- printf("IP地址:");
- scanf("%d",&x);
- transfer_1(x);
- system("pause");
- }
2、含有字母
- #include <stdio.h>
- #include <iostream>
- #include <string>
- using namespace std;
- //将16进制数数转化成10进制数,一位的0-F。
- int transfer_0(char x)
- {
- int y=0;//返回值
- if (x>='0' && x<='9')//0-9的数字
- {
- y=x-'0';
- return y;
- }
- if (x>='a' && x<='f')//a-f的字母
- {
- y=x-'a'+10;
- return y;
- }
- if (x>='A' && x<='F')//A-F的字母
- {
- y=x-'A'+10;
- return y;
- }
- printf("参数错误!");
- exit(1);
- }
- /*
- //将16进制数数转化成10进制数,两位的00-FF。
- int transfer_1(char x[],int n)//长度为2
- {
- char s[2];//固定的,长度不变
- for (int i=0;i<n;i++)
- {
- s[i]=x[i];
- }
- int y1=transfer_0(s[0]);//十位
- int y2=transfer_0(s[1]);//个位
- int y=y2+y1*16;
- return y;
- }
- */
- //尝试一次,尝试删除上面的,哈哈~~
- //将16进制数数转化成10进制数,八位的00000000-FFFFFFFF。
- void transfer_2(char x[],int n)//长度为8
- {
- //从左往右
- int y0=transfer_0(x[0]);
- int y1=transfer_0(x[1]);
- int y2=transfer_0(x[2]);
- int y3=transfer_0(x[3]);
- int y4=transfer_0(x[4]);
- int y5=transfer_0(x[5]);
- int y6=transfer_0(x[6]);
- int y7=transfer_0(x[7]);
- printf("结果是:%d.%d.%d.%d\n",y0*16+y1,y2*16+y3,y4*16+y5,y6*16+y7);
- }
- void main()
- {
- char x[9]="";
- printf("8位的IP地址(十六进制):");//不能有空位
- cin>>x;
- transfer_2(x,8);
- system("pause");
- }
3、提交版
- #include <stdio.h>
- #include <string>
- //将16进制数数转化成10进制数,一位的0-F。
- int transfer_0(char x)
- {
- int y=0;//返回值
- if (x>='0' && x<='9')//0-9的数字
- {
- y=x-'0';
- return y;
- }
- if (x>='a' && x<='f')//a-f的字母
- {
- y=x-'a'+10;
- return y;
- }
- if (x>='A' && x<='F')//A-F的字母
- {
- y=x-'A'+10;
- return y;
- }
- printf("参数错误!");
- exit(1);
- }
- //将16进制数数转化成10进制数,八位的00000000-FFFFFFFF。
- void transfer_2(char x[])
- {
- //从左往右
- int y1=transfer_0(x[0])*16+transfer_0(x[1]);
- int y2=transfer_0(x[2])*16+transfer_0(x[3]);
- int y3=transfer_0(x[4])*16+transfer_0(x[5]);
- int y4=transfer_0(x[6])*16+transfer_0(x[7]);
- printf("结果是:%d.%d.%d.%d\n",y1,y2,y3,y4);
- }
- void main()
- {
- char x[9]="";//长度为8
- printf("8位的IP地址(十六进制):");//不能有空位,只取前8位
- scanf("%s",&x);
- transfer_2(x);
- }
- IP地址转换-16进制转化为10进制
- IP地址转换-16进制转化为10进制
- ip地址转化为其他进制
- 把10进制的ip地址转换为16进制
- 32位IP地址转换为点分10进制的IP地址
- IP地址转换为一个整数和整数转化为IP地址
- ip地址转化为整数 整数转化为IP地址
- IP地址转化为文本
- IP地址转化为数字表示
- 转化ip地址为长整型数字
- 将IP地址转化为一个整数
- 转换IP地址为十进制
- 10进制转化为16进制
- 将二进制转换为其它进制(这里转化为16进制,其它自己尝试)
- 将IP地址转换为二进制
- 如何转换IP地址为整型
- 域名转换为IP地址示例
- c#中域名转换为IP地址
- linux设备驱动程序( linux device driver)
- Matlab曲线拟合 最小二乘法 polyfit
- 验证Windows folder 名称的合法性
- 长度为0的数组——C语言的非标准用法之一
- 查看Oracle版本
- IP地址转换-16进制转化为10进制
- 数据挖掘学习资料收集
- CString 妙用
- SL4A_启动apk应用测试包
- MySQL数据库性能优化之缓存参数优化
- JSF下载地址
- sdbot安装
- gcc和g++
- Linux Makefile自动生成的运行步骤