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

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

little bottle
풀어 주다: 2023-04-06 11:14:02
앞으로
1830명이 탐색했습니다.

이 기사에서는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:cnblogs.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿