>  기사  >  백엔드 개발  >  [PHP 학습] 두 개의 n 비트 이진 정수 추가 구현

[PHP 학습] 두 개의 n 비트 이진 정수 추가 구현

little bottle
little bottle앞으로
2019-04-25 15:46:481754검색

이 기사에서는 PHP를 사용하여 두 개의 n비트 이진 정수를 추가하는 방법에 대해 설명합니다. 여기에는 참조 값이 있으며 관심 있는 친구들이 이에 대해 배울 수 있습니다.

질문: 두 개의 n비트 이진수는 각각 두 개의 n 요소 배열 A와 B에 저장됩니다. 이 두 정수의 합은 n+1 요소 배열 C에 저장됩니다.
답변: 이 질문은 주로 덧셈을 검사합니다. carry 문제, 요소 1+1 =0이고 앞으로 1개 이동
ADD-BINARY(A,B)
​ C=new 정수[A.length+1]
​ ​ carry=0
​ ​ for i= A.길이 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);

관련 튜토리얼: PHP 비디오 튜토리얼

위 내용은 [PHP 학습] 두 개의 n 비트 이진 정수 추가 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제