
求解 使用php将1000位的十进制大数转成二进制 35
1212111111114141790830841027.............1242545234234897601换换成二进制输出二不溢出...
1212111111114141790830841027.............1242545234234897601换换成二进制输出二不溢出
展开
2个回答
展开全部
下面的代码测试通过的,我只用几10位进行测试,理论上成千上万位结果也是正确的,供你参考,算法比较笨蛋(完全模仿人工的除2取余):
<?php
//超大整数(10进制)转换为二进制数
$n='12121111111141417908308410289576890247569807456709384756890743906790486790845';
//$n='15';//1111
//$n='257';//100000001
$r='';//结果
while ($n){
//$n整除2,商$m、余数$k
$k=0;
$m='';
do{
$k=$k*10 + substr($n,0,1);
if ($m!='' || $k>1) $m.=floor($k/2);
$k=$k % 2;
$n=substr($n,1);
//$r=$k . $r;
}while($n!='');
//echo "r=$r;m=$m\n";//break;
//下一轮除法
$n=$m;
$r=$k . $r;
}
echo $r;
?>
2015-10-21
展开全部
意义是什么?你要做什么功能
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询