Java实现点分十进制IP和长整型转换
转载:http://blog.csdn.net/lin111000713/article/details/16337391
原理:
IP地址是一个以点作为分隔符的十进制四字段字符串,例如“10.0.3.193”。将这四个十进制数转化为二进制即为:
每段数字 相对应的二进制数
10 00001010
0 00000000
3 00000011
193 11000001
以从左到右的顺序放在一起,为00001010 00000000 00000011 11000001,转换为10进制数就是:167773121,即为一个长整型。
从长整型到字符串的转化要点:移位、屏蔽掉不需要的位,字符串拼接。
从字符串到长整型的转化要点:解析字符串,移位,求和。
Java代码:
public class IPConvertor {public static String numToIP(long ip) {StringBuilder sb = new StringBuilder();for (int i = 3; i >= 0; i--) {sb.append((ip >>> (i * 8)) & 0x000000ff);if (i != 0) {sb.append('.');}}//System.out.println(sb);return sb.toString();}public static long ipToNum(String ip) {long num = 0;String[] sections = ip.split("\\.");int i = 3;for (String str : sections) {num += (Long.parseLong(str) << (i * 8));i--;}// System.out.println(num);return num;}public static void main(String[] args) {long sd = 92305930;String str = numToIP(sd);System.out.println(str);System.out.println(ipToNum(str));}
}
Java实现点分十进制IP和长整型转换相关推荐
- 【Programming Clip】点分十进制IP和长整型转换
作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 1.用途 将一个整型数值和一个IP字符串相互转换. 2.描述语言 C, Java 3.原理 IP地址是一个以点 ...
- Java实现点分十进制IP地址转换为整数
package ipaddress; //一.将IP地址转换为整数(IPV4,点分十进制)的关键技术点如下: //1.通过String的indexOf方法找出字符串IP地址中的"." ...
- python中复数的实部和虚部都是浮点数_Python基础:数值(布尔型、整型、长整型、浮点型、复数)...
一.概述 Python中的 数值类型(Numeric Types)共有5种:布尔型(bool).整型(int).长整型(long).浮点型(float)和复数(complex). 数值类型支持的主要操 ...
- 点分十进制IP校验、转换,掩码校验
/****************************************************************************** 点分十进制IP校验.转换,掩码校验* 声 ...
- java长整型转换为整型_java ip地址转换为长整型
java ip地址转换为长整型 java ip地址转换为长整型: public class Util { /** * 字符串ip转换为long * @param 字符串ip * @return */ ...
- Java的长整型Long/long后面的数字什么情况下必须加L?
[1] 问题的由来 在日常开发中,实体类需要序列化,一般写法如下: public class User implements java.io.Serializable {private stati ...
- 将ip地址转换成一个长整型(日志处理)
//将ip地址转换成一个长整型 def ip2Long(str:String): Long ={val fields: Array[String] = str.split("\\." ...
- Java | 由天数计算日期:长整型long转换为日期
如题,晚上突发奇想要写个程序算一下和烧饼是哪天认识的,记得很多年前QQ是能看加好友的时间的,现在却只能看认识天数了,所以只好自己动手啦. 用的是Java,这是上学期学的内容了,但知识全还给老师了,花了 ...
- java长整型数输入格式_java编程之计算16位长整型数字中0-9出现次数(从命令窗输入数据)...
/* *读入一个16位的长整型,利用switch语句计算0-9这十个数字中,每个字出现的次数 **/ import java.util.Scanner; class number{ public st ...
最新文章
- 16个matplotlib绘图实用小技巧!
- 工程项目管理丁士昭第二版_2021年软考系统集成项目管理工程师知识点预习第十四章第二节...
- 十年前,他如何自学技术进阿里?
- html、css、js注释,js,html,css注释大集合
- LeetCode:位运算实现加法
- oracle清除bin,Oracle recyclebin详解(闪回删除的表)
- springboot整合ehcache+redis实现双缓存
- Ubuntu16.04 LTS下apt安装WireShark
- 测试构造器它山之玉可以重构:身份证号(第四天)
- 树莓派RaspberryPi的RPi.GPIO使用指南
- 联想a500手机驱动_一块砖也敢刷:联想手机A368T刷了三次才重新进入系统
- SQL中的集合运算有必要存在的几个例子
- Atitit.获取某个服务 网络邻居列表 解决方案
- 线性代数及其应用(第三版)5.1节习题解答
- Python入门之经典函数实例
- C语言高版本vs编译器scanf_s等报错原因方法
- c++ 查看opencv版本 linux
- 消防联动控制系统服务器,火灾自动报警消防联动控制系统报价单V4.4.xls
- OOALV进阶版:实现一个屏幕下展示多个ALV,跳转网页
- MES的转型升级,智能制造呼唤新理念