ip地址转换成十进制整数

 java ip地址转换为长整型;
public class Util {
   
     /**
     * 字符串ip转换为long
     * @param 字符串ip

     * 通过左移位操作给每一段的数字加权,第一段的权为2的24次方, 第二段的权为2的16次方, 第三段的权为2的8次方, 最后  一段的权为1
     * @return
     */
    public static long getStringIpToLong(String ip) { 
        String[] ips = ip.split("[.]"); 
        long num =  16777216L*Long.parseLong(ips[0]) + 65536L*Long.parseLong(ips[1]) + 256*Long.parseLong(ips[2]) + Long.parseLong(ips[3]); 
        return num; 
    } 
     
    /**
     * 长整型ip转换为string
     * @param long型ip
     * @return
     */ 
    public static String getLongIpToString(long ipLong) {  
       
        long mask[] = {0x000000FF,0x0000FF00,0x00FF0000,0xFF000000}; 
        long num = 0; 
        StringBuffer ipInfo = new StringBuffer(); 
        for(int i=0;i<4;i++){ 
            num = (ipLong & mask[i])>>(i*8); 
            if(i>0) ipInfo.insert(0,"."); 
            ipInfo.insert(0,Long.toString(num,10)); 
        } 
        return ipInfo.toString(); 
    } 
}

**********************************************

以上是从网上摘录的,其中的算法不太清楚,哪位高手可以帮忙解释一下?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值