zoukankan      html  css  js  c++  java
  • 位运算练习:求多数的大数、二进制数中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>
  • 相关阅读:
    linux(不会考特别难,牢记下面即可)
    ajax
    Javascript 和 Jquery
    开发环境及配置
    网络协议考点
    面向对象考点
    会话控制
    文件操作
    正则表达式
    自定义函数和内部函数
  • 原文地址:https://www.cnblogs.com/McJeremy/p/1688613.html
Copyright © 2011-2022 走看看