美文网首页
scala的IP转Long

scala的IP转Long

作者: 一个射手座程序猿 | 来源:发表于2019-10-24 10:17 被阅读0次

//方法接收一个String类型的IP如:192.168.100.100,返回一个数字如:3232261220

def ipToLong(ip: String): Long = {

      //注意:IP个原始面貌:

      //10111111.10111010.11110000.11110000

      val ipArr: Array[Int] = ip.split("[.]").map(s => Integer.parseInt(s))

      var ipnum = 0L

      for (i <- ipArr) {

        //<<表示位运算左移 ,0L左移之后还是0L,二进制形式:00000000.00000000.00000000.00000000

        //其他数,左移之后,后面补0

        //|表示位运算或,或的特点是,与0进行或,返回本身

        //第一次:

        //00000000.00000000.00000000.10111111

        //00000000.00000000.00000000.00000000

        //00000000.00000000.00000000.10111111

        //第二次:

        //00000000.00000000.00000000.10111010

        //00000000.00000000.10111111.00000000

        //00000000.00000000.10111111.10111010

        //第三次:

        //00000000.00000000.00000000.11110000

        //00000000.10111111.10111010.00000000

        //00000000.10111111.10111010.11110000

        //第四次:

        //00000000.00000000.00000000.11110000

        //10111111.10111010.11110000.00000000

        //10111111.10111010.11110000.11110000

        ipnum = i | (ipnum << 8)

      }

      ipnum

    }

相关文章

网友评论

      本文标题:scala的IP转Long

      本文链接:https://www.haomeiwen.com/subject/wqrrvctx.html