博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IP和整型间相互转换
阅读量:5240 次
发布时间:2019-06-14

本文共 2334 字,大约阅读时间需要 7 分钟。

1 package com.jdk7.chapter5; 2  3 import java.math.BigInteger; 4  5 public class IPToLong { 6     /** 7      * 将字符串类型的IP转换为整型: 8      * 1.IP中每个"."的位置(第二个"."以后的起始位置需要在第一个位置的基础上+1) 9      * 2.使用String的substring方法截取"."分隔的每段,总共四段10      *         另:可以使用"."分隔为四段11      * 3.第一、第二、第三、第四段分别使用Long的parseLong方法转换为long类型后,依次向左移动24位、16位、8位、0位12      * 4.四段相加的结果为最终的整型值13      * @param str14      * @return15      */16     public static long ipToLong(String str){17         int point1 = str.indexOf(".");18         int point2 = str.indexOf(".", point1+1);19         int point3 = str.indexOf(".", point2+1);20         long[] lon = new long[4];21 //        lon[0] = Long.parseLong(str.substring(0, point1));22 //        lon[1] = Long.parseLong(str.substring(point1+1, point2));23 //        lon[2] = Long.parseLong(str.substring(point2+1, point3));24 //        lon[3] = Long.parseLong(str.substring(point3+1, str.length()));25 //        long result = (lon[0]<<24) + (lon[1]<<16) + (lon[2]<<8) + (lon[3]);26         27         String[] ip = str.split("\\.", 4);28         lon[0] = Long.parseLong(ip[0]);29         lon[1] = Long.parseLong(ip[1]);30         lon[2] = Long.parseLong(ip[2]);31         lon[3] = Long.parseLong(ip[3]);32         long result = (lon[0]<<24) + (lon[1]<<16) + (lon[2]<<8) + (lon[3]);33         return result;34     }35     36     /**37      * 整型转换为IP:38      * 1.将long类型值右移24位得到第一段字符39      * 2.将long类型值与0x00FFFFFF按位与运算,得到第二段40      * 3.将long类型值与0x0000FFFF按位与运算,得到第三段41      * 4.将long类型值与0x000000FF按位与运算,得到第四段42      * 5.从第一段开始,每段拼接".",最后一段不需要拼接".",拼接结果为最终的IP字符串43      * @param lon44      * @return45      */46     public static String longToIp(long lon){47         StringBuffer sb = new StringBuffer();48         sb.append(lon>>24).append(".").append(((lon & 0x00FFFFFF)>>16)).append(".").append(((lon & 0x0000FFFF)>>8))49         .append(".").append((lon & 0x000000FF));50         System.out.print("长整型转换为字符串后>");51         return sb.toString();52     }53     public static void main(String[] args) {54         String IP = "192.168.1.109";55         long lon = IPToLong.ipToLong(IP);56         System.out.println(IP+"转换为整型后为>"+lon);57         System.out.println(IPToLong.longToIp(lon));58     }59 }60 61 62 执行结果:63 192.168.1.109转换为整型后为>323223588564 长整型转换为字符串后>192.168.1.109

 

转载于:https://www.cnblogs.com/celine/p/8462714.html

你可能感兴趣的文章
Spring-hibernate整合
查看>>
c++ map
查看>>
exit和return的区别
查看>>
discuz 常用脚本格式化数据
查看>>
洛谷P2777
查看>>
PHPStorm2017设置字体与设置浏览器访问
查看>>
Django 相关
查看>>
git init
查看>>
训练记录
查看>>
IList和DataSet性能差别 转自 http://blog.csdn.net/ilovemsdn/article/details/2954335
查看>>
Hive教程(1)
查看>>
第16周总结
查看>>
C#编程时应注意的性能处理
查看>>
Fragment
查看>>
比较安全的获取站点更目录
查看>>
苹果开发者账号那些事儿(二)
查看>>
使用C#交互快速生成代码!
查看>>
UVA11374 Airport Express
查看>>
P1373 小a和uim之大逃离 四维dp,维护差值
查看>>
NOIP2015 运输计划 树上差分+树剖
查看>>