IP地址转换
描述:

IP地址的长度为32,即有2^32-1个地址。IP地址一般采用点分十进制表示法,例如"192.168.1.1"。IP地址也可以直接用一个32位的整数进行表示。本题目要求根据给定的整数IP地址表示发,将其转换为点分十进制的形式。

举个例子:

输入整数IP地址为 3232235777

其对应十六进制为 0xC0A80101

每字节转为十进制 0xC0=192,0xA8=168,0x01=1,0x01=1

则输出为 192.168.1.1

运行时间限制: 1 Sec
内存限制: 100 MByte
输入:

32位正整数IP地址

输出:

点分十进制IP地址

样例输入:
3232235777
样例输出:
192.168.1.1
答案提示:

程序写的有问题,ip对于的整数比较小的适合有错误,100分只得了29分

167773121
10.3.3.193
这个就报错
下面程序是严格一位一位的计算,出错了
import java.util.*;

public class Main6{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
while(in.hasNext()){
Long longA = in.nextLong();
// String hex = longToHex(longA);
String hex = Long.toHexString(longA);
hex = hex.toUpperCase();
String ip = hexToIP(hex);
System.out.println(ip);
} in.close();
}
public static String hexToIP(String hex){
StringBuffer sb = new StringBuffer();
int i;
String s;
for( i=0;i<hex.length()-2;i=i+2){
s = hex.substring(i,i+2);
sb.append(hexToInt(s));
sb.append('.');
}
s = hex.substring(i,i+2);
sb.append(hexToInt(s));
return sb.toString();
}
/**
* 16进制 转化成 10进制
* @param str
* @return
*/
public static int hexToInt(String str){
int res = 0;
int n = str.length();
int pow = (int)Math.pow(16, n-1);
for(int i=0;i<n;i++){
char ch = str.charAt(i);
if(ch<='9'){
res += (ch-48)*pow;
}else{
res += (ch-'A'+10)*pow;
}
pow/=16;
}
return res;
}
/**
* 十进制转化成十六进制
* @param x
* @return
*/
public static String longToHex(long x){
String[] a = new String[]{"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E"};
StringBuffer sb = new StringBuffer();
while(x>0){
int id = (int)(x%16); //求余数,对于数组id
sb.insert(0, a[id]); // 插入到第0个位置
x=x/16; // 更新 }
// sb.insert(0, "0x"); return sb.toString();
}
}

百度一下

通过位运算比较简单了,但是违背了题意思

    public static String bugs(long temp){
long a=((temp&0xff000000)>>24);
long b=((temp&0x00ff0000)>>16);
long c=((temp&0x0000ff00)>>8);
long d=(temp&0x000000ff);
return a+"."+b+"."+c+"."+d;
}

华为上机:IP地址转换的更多相关文章

  1. ip地址转换

    通常,我们用点分十进制字符串表示ipv4地址(192.168.1.1),用十六进制字符串表示ipv6地址(fe80::20c:29ff:fee9:4bcc). ipv4转换函数 #include &l ...

  2. [转]字符型IP地址转换成数字IP的SQL函数

    使用SQL函数可以实现许多的功能,下面为您介绍的是字符型IP地址转换成数字IP的SQL函数示例,供您参考,希望对您学习SQL函数能够有所帮助.      /**//*--调用示例       sele ...

  3. IP地址转换成Long型数字的算法

    在应用程序开发中,涉及到IP地址的存储,大部分开发人员都将其存为String(或文本类型).能否将固定格式为m.n.x.y的IP地址转换成 Long型的数字呢?答案是肯定的.在数据库层面,可以直接将结 ...

  4. 四、IP地址转换

    IP地址与端口 TCP/IP(传输控制协议/网际协议)不是一个协议,而是一组协议的总称,包括IP.TCP.UDP.ICMP.ARP等.它规范了网络上的所有通信设备,尤其是一个主机与另一个主机之间的数据 ...

  5. 字符串-06. IP地址转换

    /* * Main.c * D6-字符串-06. IP地址转换 * Created on: 2014年8月19日 *******测试通过******** *转载:http://blog.csdn.ne ...

  6. 套接字编程相关函数(1:套接字地址结构、字节序转换、IP地址转换)

    1. 套接字地址结构 1.1 IPv4套接字地址结构 IPv4套接字地址结构通常也称为“网际套接字地址结构”,它以sockaddr_in命名,定义在<netinet/in.h>头文件中.下 ...

  7. python整数与IP地址转换

    python整数与IP地址转换 [转] 我们有时会将一个整数与IP地址进行互换,用python代码实现很简单将一个整数如2000000,变为一个IP地址的方式 >>> import ...

  8. IP地址转换函数

    只适用于IPV4 inet_addr函数将用点分十进制字符串表示的IPv4地址转化为用网络字节序整数表示的IPv4地址. 失败时返回INADDR_NONE. inet_aton函数完成和inet_ad ...

  9. 【网络编程一】主机字节序与网络字节序以及ip地址转换函数

    在计算机设计之初,对内存中数据的处理也有不同的方式,(低位数据存储在低位地址处或者高位数据存储在低位地址处),然而,在通信的过程中(ISO/OSI模型和TCP/IP四层模型中),数据被一步步封装(然后 ...

随机推荐

  1. KafkaOffsetMonitor使用方法

    (1)下载jar包 去网上搜索KafkaOffsetMonitor即可. 我这里共享了我的百度云连接:http://yun.baidu.com/s/1nvGjbDn 如果某一天我这个取消共享了,大家去 ...

  2. [转]ubuntu 下minicom超级终端的使用方法

    [转]ubuntu 下minicom超级终端的使用方法 http://blog.chinaunix.net/uid-25909619-id-3184639.html 系统环境: Ubuntu 11.0 ...

  3. JavaScript构建(编绎)系统大比拼:Grunt vs. Gulp vs. NPM

    Nicolas Bevacqua进行了一个比较JavaScript构建(编绎)系统的任务.他对三巨头: Grunt, Gulp and NPM进行了比较,并讨论了每种的优缺点. By Nicolas ...

  4. springboot常见应用属性

    # ===================================================================# COMMON SPRING BOOT PROPERTIES ...

  5. [转]反向代理过程与Nginx特点详解

    原文链接:<Nginx搭建反向代理服务器过程详解> 1.1 反向代理初印象 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内 ...

  6. 设置搜狗输入法在任何时候按左右两侧的shift激活

    如上图,搜狗输入法for linux最近与广大用户见面了,现在的版本是1.0.0.0014,本人系统是ubuntu 14.04非麒麟版本 使用过程中有个习惯就是在任何窗口内只要按任意一侧的shift就 ...

  7. 基于.net mvc的校友录(七、文件上传以及多对多关系表的LINQ查询实现)

    图片的上传与调用 图片的上传就是文件的上传,在前台使用的是type="file"的input,但是,要将表单声明为multipart/form-data模式,方法是在BeginFo ...

  8. multipart/form-data

    Content-Type的类型扩充了multipart/form-data用以支持向服务器发送二进制数据

  9. Java 7 中 NIO.2 的使用——第四节 文件和目录

    Files类提供了很多方法用于检查在于你真正实际去操作一个文件或目录.这些方法强烈推荐,也非常有用,也能避免很多异常的发生.例如,一个很好的习惯就是在你试着移动一个文件从一个地方到另一个地方的时候,先 ...

  10. python-转换成exe文件(py2exe)

    一.简介: py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序.py2e ...