현재 위치: > 최신 기사 목록> bindec ()를 사용하여 부울 배열을 10 진수로 변환하는 방법? 간단한 매핑을 구현하는 방법을 가르쳐주십시오

bindec ()를 사용하여 부울 배열을 10 진수로 변환하는 방법? 간단한 매핑을 구현하는 방법을 가르쳐주십시오

M66 2025-06-23

PHP에서 부울 어레이를 처리하고 소수점 숫자로 변환하는 것은 특히 데이터 매핑, 권한 제어 또는 이진 식별 처리에서 일반적인 요구 사항입니다. 이 기사는 부울 어레이와 결합 된 PHP 내장 기능 Bindec ()을 사용하여 부울 어레이를 소수점 숫자로 간결하고 효율적으로 변환하는 방법을 소개합니다.


1. bindec () 소개

Bindec () 는 PHP가 이진 문자열을 소수점 숫자로 변환하는 데 사용하는 함수입니다. 예를 들어:

 <?php
echo bindec("1011"); // 산출 11
?>

문자 '0'및 '1'으로 구성된 문자열을 수용하고 해당 소수 정수를 반환합니다.


2. 부울 배열 변환 아이디어

부울 배열의 요소는 또는 거짓 이며, 이진 번호로 1과 0으로 생각할 수 있습니다. 예를 들어:

 $array = [true, false, true]; // 해당 바이너리 101

단계는 다음과 같습니다.

  1. 부울 배열을 문자열 '1' 또는 '0' 에 맵핑하십시오.

  2. bindec ()를 사용하여 문자열을 소수점으로 변환하십시오.


3. 코드 예제

부울 배열을 십진수로 변환하는 방법을 보여주는 완전한 코드 데모는 다음과 같습니다.

 <?php
// 부울 배열
$boolArray = [true, false, true, true]; // 해당 바이너리 1011

// 부울 값을 문자열로 변환하십시오 '1' 또는 '0'
$binaryString = implode('', array_map(function($b) {
    return $b ? '1' : '0';
}, $boolArray));

// 사용 bindec() 소수점 번호로 변환하십시오
$decimalNumber = bindec($binaryString);

echo "부울 배열转换的이진字符串是: " . $binaryString . "\n";
echo "소수점 번호는 IS로 변환됩니다: " . $decimalNumber . "\n";
?>

실행 결과 :

 부울 배열转换的이진字符串是: 1011
소수점 번호는 IS로 변환됩니다: 11

4. 응용 프로그램 시나리오

  • 권한 제어 : 부울 배열을 사용하여 권한을 나타내고 소수 권한 코드로 변환하여 쉽게 쿼리 할 수 ​​있도록 데이터베이스를 저장하십시오.

  • 플래그 비트 맵 : 데이터 압축 및 전송의 쉬운 다중 부울 플래그를 하나의 숫자로 매핑하십시오.

  • 상태 인코딩 : 장치 또는 시스템 상태의 이진 인코딩.


5. 주목할만한 것들

  • 배열에서 부울 값의 순서는 이진 비트의 순서를 결정하며, 일반적으로 배열의 첫 번째 요소는 가장 높은 비트에 해당합니다.

  • 부울 배열이 비어 있으면 변환 결과는 0입니다.

  • 배열에 비-공간 유형이있는 경우 먼저 유형 확인 또는 변환을 수행하는 것이 좋습니다.


6. 고급 확장 : 동적 길이 매핑

동적 플래그 관리를 용이하게하기 위해 길이의 부울 배열을 변환 할 수 있습니다.

 <?php
function boolArrayToDecimal(array $boolArray): int {
    $binaryString = implode('', array_map(fn($b) => $b ? '1' : '0', $boolArray));
    return bindec($binaryString);
}

// 샘플 통화
$flags = [false, true, true, false, true]; // 이진 01101
echo boolArrayToDecimal($flags); // 산출 13
?>

이 예를 통해 간단한 매핑 변환을 달성하기 위해 부울 배열과 결합 된 PHP의 bindec () 함수를 사용하는 방법을 배웠습니다. 코드의 코딩 효율성과 코드의 유지 보수 가능성을 향상시키기 위해이 기술을 실제 개발에 적용 할 수 있기를 바랍니다.