java网卡地址转long_IP地址与Long型整数的相互转换

本文介绍如何将IP地址转换为Long类型,用于高效存储和处理。通过去除IP地址的小数点并计算各部分乘以2的相应次方,可以将IP地址转换为Long整数。同时提供了转换的Java实现代码,包括`ipToLong`和`ipLongToString`方法,实现了IP地址与Long类型的相互转换。
摘要由CSDN通过智能技术生成

前段时间有以需求你,为了实现高效率的地址查找以及比对,将ip地址转化为long型存入redis进行处理,并按照ip进行AB(根据ip的奇偶)对照。

然后先梳理一下转换的逻辑和一些基础知识。

/**

* 之前存储ip都是存字符串,没想过ip地址竟然还能存Long,于是测试了一下确实可以。

* 举个简单例子先,比如有个ip地址是169.254.85.85,

* 对应的二进制是10101001.11111110.1010101.1010101,将小数点去掉后变为101010011111111010101011010101,

* 可以看到除了最低的位置的整数位置没有发生变化,其他三个位置的整数分别相对原来的位置左移了8位,16位,24位,而在二进制中每左移一位,就相当于*2,

* 也就是说对应的每段数字分别乘2的8次方,16次方以及24次方,总体来说思路就是去掉ip地址的小数点后重新计算,

* 上面这个ip地址转化为long型整数是2852017493,

* 当然如果你觉得这样计算比较麻烦也可以通过将每段数字转化为十六进制后拼接,之后在计算器中直接转化为十进制效果是一样的,对应的十六进制是A9FE5555

*

*

* 基础运算知识:

* 运算符解释:

* (1)、“|”符号的含义就是将两个数字的二进制按右端对齐,只要有数字1就换1,当两个数字都是0才是0例如

* 示例:202(二进制:11001010)| 163(10100011)可以像下面这样看 ==

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值