• 位运算练习:求多数的大数、二进制数中1的个数


    代码
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
     
    <head>
      
    <title> new document </title>
      
    <meta name="generator" content="editplus" />
      
    <meta name="author" content="" />
      
    <meta name="keywords" content="" />
      
    <meta name="description" content="" />
     
    </head>

     
    <body>
       
    <script type="text/javascript" language="javascript">
         
    /*
           求多个数中的最大者
         
    */
         
    function getMaxNum()
         {
            
    if(arguments.length<=1)
            {
              
    return arguments[0];
            }
            
    var arg=arguments;
            
    var max=arg[0];
            
    var i=1;
            
    while(i<arg.length)
            {
              
    //一个数由32位表示,最高位是符号为(0正1负),因此,两数相减,结果右移31位,保留的就是符号位。
              //再由符号位与1相与,0正1负
              max=(((max-arg[i])>>31)&1)==0?max:arg[i];         
              
    ++i;
            }
            
    return max;
         }
         
    function get1Num(num)
         {
            
    var count=0;
            
    while(num>0)
            {
              
    //一个数的二进制表示中1的个数算法为:此数减1,再与自身相与,以此循环,直至该数小于等于0为止。循环的次数即为1的个数
              num=(num-1)&num;
              count
    ++;
            }
            
    return count;
         }
         
         document.write(
    "10,-2,15,17.23,13,12中的大数是:"+getMaxNum(10,-2,15,17.23,13,12));
         document.write(
    "<br />7的二进制表示中,1的个数为:"+get1Num(7));
       
    </script>
     
    </body>
    </html>
  • 相关阅读:
    新概念英语第四册16-30课(转)
    新概念英语第四册01-15课(转)
    通过了解MySpace的六次重构经历,来认识分布式系统到底该如何创建(转载)
    BASE64编码规则及C#实现
    Lucene资料汇总
    SQL Server性能监控
    Fedex接口和测试账户
    css语法
    POI操作Excel常用方法总结 (转)
    java eclipse中的代码联动提示功能
  • 原文地址:https://www.cnblogs.com/McJeremy/p/1688613.html
Copyright © 2020-2023  润新知