zoukankan      html  css  js  c++  java
  • 给定一个IP地址,转化为二进制32位,再转化为十进制,写出一个方法让其十进制转为IP地址

    十进制是已知的数值

    第一种方法:

    <script type="text/javascript">

    var num=2148140545;
    var str=num.toString("2");//转为二进制
    var str1=parseInt(str.substring(0,8),2);


    /*parseInt函数用于解析一个字符串,并返回一个整数
    substring() 方法用于提取字符串中介于两个指定下标之间的字符。
    stringObject.substring(start,stop)
    start 必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。
    stop 可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。
    如果省略该参数,那么返回的子串会一直到字符串的结尾。
    */


    var str2=parseInt(str.substring(8,16),2);
    var str3=parseInt(str.substring(16,24),2);
    var str4=parseInt(str.substring(24,str.length),2);
    console.log(str1+"."+str2+"."+str3+"."+str4);
    </script>

    第二种方法:

    <script type="text/javascript">

    function int2iP(num){
    var str;
    var tt = new Array();
    tt[0] = (num >>> 24) >>> 0;
    tt[1] = ((num << 8) >>> 24) >>> 0;
    tt[2] = (num << 16) >>> 24;
    tt[3] = (num << 24) >>> 24;
    str = String(tt[0]) + "." + String(tt[1]) + "." + String(tt[2]) + "." + String(tt[3]);
    return str;
    }
    var sun = int2iP(2148140545);//传参
    console.log(sun)
    /*
    100>>>2
    100的二进制是
    01100100
    向右移2位后为
    00011001
    最后结果为25
    100>>>2==25
    无符号位移(>>>)和有符号位移(>>)的区别是
    有符号位移运算时如果数字为正数时位移后在前面补0,为负数时则在位移后在前面补1

    100>>2==25 和上面的计算方法一样
    如果100为负数
    -100>>>2
    -100的二进制为-_-好长。
    1111111111111111111111111111111111111111111111111111111111111100
    移除最后2位后
    11111111111111111111111111111111111111111111111111111111111111
    之后在前面补两位
    1111111111111111111111111111111111111111111111111111111111111111
    变为十进制后结果为-1
    所以
    -100>>>2=-1
    */
    </script>

    本文仅提供参考,是本人闲时所写笔记,如有错误,还请赐教,作者:阿蒙不萌,大家可以随意转载

  • 相关阅读:
    题解-CF1097F Alex and a TV Show
    题解-UVA757 Gone Fishing
    题解-UVA1401 Remember the Word
    题解-UVA11732 "strcmp()" Anyone?
    【数学】[AH2017/HNOI2017]礼物
    Educational Codeforces Round 109
    KYOCERA Programming Contest 2021(AtCoder Beginner Contest 200)
    Codeforces Global Round 14
    CF906E Reverses(H)
    【LuoguP4464】 [国家集训队] JZPKIL(M)
  • 原文地址:https://www.cnblogs.com/huchong-bk/p/11204858.html
Copyright © 2011-2022 走看看