PHP中位数不一样的数字的位操作 (PHP心得)
发布于 2007-04-16 17:12 8 阅读:44,829 评论:8 标签: php 位操作

一直以来对算法性的东西了解的少,这不今天又遇见问题。看google黑板报一个数学之美的文章简单之美:布尔代数和搜索引擎的索引,觉得对二进制的运算练习很少,于是拿来练手。

当位数不一样时运行的结果已然不是1和0的组合了

例如:

CODE:
$a 1001;
$b 111000;

$c $a $b ;
$d $a $b ;
$e $a $b ;
echo 
$c." ".$d." ".$e;
?>

结果是 :392 111609 111217

不明白其中的道理,转而向喜悦村求救。得到fly512给的答案:

CODE:
$a  1001;
$a1 base_convert$a102) ;        //把10进制转化为2进制
$b  111000;
$b1 base_convert$b102);       //把10进制转化为2进制
$c $a $b ;

echo 
$c.'
'
;//十进制结果
echo base_convert$c102); //把$c转化为2进制
echo $a1." ".$b1."
"
;
/******************
00000001111101001   //$a1的值,也就是$a的2进制,高位加0,与$b的2进制对齐
11011000110011000   //$b1的值,也就是$b的2进制
00000000110001000  //相与的结果,全1则为1,否则为0
********************/
?>
不由得为自己的函数知识感到惭愧。。。。。
展开全文  
收起全文