<?
$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);
?>
解决方案 »
- 字符编码问题?
- IE6 file表单隐藏 服务器无法获取数据
- 获取文本框数据时产生的错误,请各位指教
- 我下载了php-4.3.3-Win32.zip请问怎样配置?
- "Warning: _oci_open_server: ORA-12154: TNS:无法处理服务名 "可能是什么原因引起的
- APC函数具体作用是什么? 没看懂啊.
- 关于 jQuery 的 edatagrid 分页问题
- nginx环境下 TP5中路由404问题怎么解决?
- PHP中上传大体积文件时需要的设置
- 线上环境centos大文件上传发生错误,php.ini改了没效果
- php怎样取得服务器的日期(在线等候)
- 关于include文件中的变量生存期和作用域的问题……
$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。