<?php
$a = [1,0,1,1,0];
$b = [1,0,0,1,0,1];
function test($a, $b) {
if (!$a || !$b) {
return $a ?: $b;
}
$c = [];
$carry = 0;
$len = max(count($a), count($b));
for ($i = 0; $i < $len; $i++) {
$tmp = 0;
$x = $a[$i] ?? 0;
$y = $b[$i] ?? 0;
$tmp = $x + $y + $carry;
$carry = $tmp < 2 ? 0 : 1;
$num = $tmp % 2;
$c[$i] = $num;
}
return $c;
}
var_dump(test($a, $b));
变种:
1 按照从高位到低位进行加法,需要对短数据进行高位填充0