位运算练习:求多数的大数、二进制数中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)#
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>
<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)#
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>
<h3>
心静似高山流水不动,心清若巫峰雾气不沾。
</h3>
心静似高山流水不动,心清若巫峰雾气不沾。
</h3>