ホームページ >バックエンド開発 >PHPチュートリアル >【PHP学習】2つのnビット2進整数の加算を実装する

【PHP学習】2つのnビット2進整数の加算を実装する

little bottle
little bottle転載
2019-04-25 15:46:481839ブラウズ

この記事では、PHP を使用して 2 つの n ビット 2 進整数を加算する方法について説明します。これには参照値があります。興味のある友人はそれについて学ぶことができます。

質問: 2 つの n ビット 2 進数が、それぞれ 2 つの n 要素配列 A および B に格納されます。これら 2 つの整数の合計が、n 要素配列 C に格納されます。
回答: この質問は主に加算のキャリーを調べる問題です 要素1 1 =0で1ビット進みます
ADD-BINARY(A,B)
C=new integer[A.length 1]
キャリー=0
for i=A.length downto 1
## 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);

関連チュートリアル:

PHPビデオチュートリアル

以上が【PHP学習】2つのnビット2進整数の加算を実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。