加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

PHP实现两个n位的二进制整数相加

发布时间:2020-05-25 22:43:32 所属栏目:PHP 来源:互联网
导读:本文章向大家介绍PHP实现两个n位的二进制整数相加,需要的朋友可以参考一下

两个n位二进制数分别存储在两个n元数组A和B中,这两个整数的和存在一个n+1元的数组C中


答:


此问题主要是考察相加进位的问题,元素1+1 =0 并且往前进一位


ADD-BINARY(A,B)


C=new integer[A.length+1]


carry=0


for i=A.length downto 1


C[i+1]=(A[i]+B[i]+carry)%2


carry=(A[i]+B[i]+carry)/2


C[i]=carry

function addBinary($A,$B){

$C=array();

$length=count($A);

$carry=0;

for($i=$length-1;$i>=0;$i--){

//当前位的数字逻辑 1+1=0 1+0=1

$C[$i+1]=($A[$i]+$B[$i]+$carry)%2;

//进位的数字逻辑 1+1=1 1+0=0

$carry=intval(($A[$i]+$B[$i]+$carry)/2);

}

$C[$i+1]=$carry;

return $C;

}

$A=array(0,1,0);

$B=array(1,1);

$C=addBinary($A,$B);

var_dump($C);

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读