A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Jayshun 中级黑马   /  2014-11-10 13:38  /  721 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public int compare(String s1, String s2) {
                //创建两个数组,用于存IP
                String[] str1=s1.split("\\.");
                String[] str2=s2.split("\\.");
                //定义用于存IP地址计算后的long对象
                long num1=0;
                long num2=0;
                ///因为每一段IP的最大值是256,每一段乘以256的3-i的次方,方便下面的比较
                for(int i=0;i<str1.length;i++){
                        num1=(long)(num1+Integer.parseInt(str1)*Math.pow(256,(3-i)));
                }
                for(int i=0;i<str2.length;i++){
                        num2=(long)(num2+Integer.parseInt(str2)*Math.pow(256,(3-i)));//这里怎么理解
                }
                if(num1-num2>0){
                        return 1;
                }
                else if(num1-num2<0){
                        return -1;
                }
                return 0;
        }
}

1 个回复

正序浏览
Math.pow(256,(3-i));这一段你上面不是有注释么?
因为每一段IP的最大值是256,每一段乘以256的3-i的次方,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马