1、初始化随机种子、获取一个1到100以内的随机数,以两位表示不够用0补充,如果3则应表示成03
2、把随机数分解成倒序的2进制7位数,如随机数为3,刚正序为0000101,倒序则为1010000请问要实现以上的动作,这条函数应该怎么写?

解决方案 »

  1.   

    <script>
    function test(n){
    return ("" + (n + 100)).substring(1);
    }
    alert(test(11));function test1(n){
    return ("" + (100000000 + parseInt(n.toString(2)))).substring(1);
    }
    alert(test1(11));function test2(n){
    var tmp = "" + parseInt(n.toString(2));
    var v = [0,0,0,0,0,0,0,0];
    for(var i=0,j=tmp.length-1; i<tmp.length; i++,j--){
    v[i] = tmp.charAt(j);
    }
    return v.join("");
    }
    alert(test2(11));
    </script>
      

  2.   

    用Math.random()创建一个0~1之间的小数, 之后 * 100, 表明0 ~ 100之间的数, 判断若大于99.0, 则Math.floor()这个数, 否则Math.ceil()成为一个1~99之间的整数.并不能直接将某个数字直接转二进制. 故而, 新建一个数组, 直接%2 , 将结果push入数组, 这就是逆序的2进制, 之后判断数组长度, 不足7位补0.思路ok了, 不需要用0来补充.. 如果需要的话, 在第一步末尾toString后判断length, 不足2位, 用0在前面补齐.
      

  3.   


    // 1.
    function r(){
    var ns = parseInt(Math.random() * 100).toString();
    return ns.length < 2 ? '0' + ns : ns;
    }
    // 2.
    alert((1234567).toString(2).split('').reverse().join(''));