为了账号安全,请及时绑定邮箱和手机立即绑定

IP地址与整数之间的互相转换详解

标签:
Java

IP地址的“构造”是由32位二进制数组成的。
IP地址转换为整数的代码:
IPAddressTurnLong
或者:
数组方式
优化如下:
for方式
分析:IP地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成一个长整数。
举例:一个IP地址为10.0.27.105
detail
组合起来即为:00001010 00000000 00011011 01101001,转换为10进制数就是:167779177,即该IP地址转换后的数字就是它了。
在上面的方法中,原理都是一样的。因为它就是操作的二进制数,使用位移操作很方面、直观。按位操作符都操作的整数的二进制数。
Long.parseLong(token.nextToken())<<24 就是把第一段数字表示的二进制数左移了24位,
得到00001010 00000000 00000000 00000000;
依次类推:
Long.parseLong(token.nextToken())<<16,
得到00000000 00000000 00000000 00000000;
Long.parseLong(token.nextToken())<<8,
得到00000000 00000000 00011011 00000000;
Long.parseLong(token.nextToken()),最低位不用移动,
得到00000000 00000000 00000000 01101001;
把这四个二进制数转换为整数后相加(结果为:167779177)和00001010 00000000 00011011 01101001表示的二进制数是一样的。
整数转换为IP地址的代码:
LongTurnIPAddress

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
37
获赞与收藏
353

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消