PHP两个n位的二进制整数相加问题的解决
程序员文章站
2023-09-04 12:26:01
两个n位的二进制整数相加问题php实现,供大家参考,具体内容如下
两个n位二进制数分别存储在两个n元数组a和b中,这两个整数的和存在一个n+1元的数组c中
答:...
两个n位的二进制整数相加问题php实现,供大家参考,具体内容如下
两个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
代码
<?php 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,1,0); $b=array(1,1,1,1); $c=addbinary($a,$b); var_dump($c);
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。