<?
$test="101010";
$m=strlen($test);
for($n=1;$n<=$m;$n++){
if(substr($test,$m-$n,1)==1){
$rel[]=$n-1;
}
}
function func(&$r){
$r=pow(2,$r);
}
@array_walk($rel,"func");
print_r($rel);echo array_sum($rel);
?>
$test="101010";
$m=strlen($test);
for($n=1;$n<=$m;$n++){
if(substr($test,$m-$n,1)==1){
$rel[]=$n-1;
}
}
function func(&$r){
$r=pow(2,$r);
}
@array_walk($rel,"func");
print_r($rel);echo array_sum($rel);
?>
$test="101010";
$m=strlen($test);
for($n=1;$n<=$m;$n++){
if(substr($test,$m-$n,1)==1){
$tem="1";
for($i=1;$i<$n;$i++)
$tem.="0";
$rel[]=$tem;
}
}
print_r($rel);
?>
我的方法向来是最笨的。
我也不知道为什么要写这样不实用的代码。由于论坛不支持指数形式,所以只能这样讲了。101010=1*(2的5次方)+0*(2的4次方)+1*(2的3次方)+0*(2的2次方)+1*(2的1次方)+0*(2的0次方)在php中
$a="101010000000000000000000";//二进制数,这里当作字符来处理
$b=strlen($a);//求出位数for($i=0;$<$b;$i++){
$c+=substr($a,$i,$i+1);
$d[$i]=substr($a,$i,$i+1);
$e.=$d[$i]."+";
}echo $e;//连加形式
echo $c;//看看十进制数,好像有函数 bindec 可以实现吧。没有调试,不知道是否正确。
我在做什么?糊涂中......2.
我不会javascript,所以也没有看这段代码。
if (curValue&curForm.elements[j].value)
好像是:
把curValue和在名为curForm表单中的第j个元素值作位运算后判断是否为0。