현재 위치: > 최신 기사 목록> php의 bindec () 함수를 Decbin ()과 결합하여 특정 바이너리가 1인지 확인하는 방법?

php의 bindec () 함수를 Decbin ()과 결합하여 특정 바이너리가 1인지 확인하는 방법?

M66 2025-06-23

PHP 프로그래밍에서, 이진 데이터를 처리 할 때, 이진 비트가 1인지 여부를 결정해야한다. PHP는 각각 이진 에서 10 진수에서 바이너리에서 바이너리에서 이진에 사용되는 두 가지 매우 실용적인 기능을 제공한다. 이 기사는이 두 기능을 결합하여 특정 바이너리가 1인지 여부를 결정하는 방법을 소개합니다.

bindec () 및 decbin () 소개

  • bindec (String $ binary_string) : int
    이진 문자열을 해당 10 진수 정수로 변환합니다.

  • decbin (int $ decimal) : 문자열
    소수 정수를 해당 바이너리 스트링으로 변환합니다.

예를 들어:

 echo bindec("101");  // 산출 5
echo decbin(5);      // 산출 "101"

이진이 1인지 결정하는 아이디어

소수점이 있고 이진 표현에서 $ POS 비트 (오른쪽에서 왼쪽으로 카운트, 0에서 계산)가 1인지 여부를 알려주고 싶다고 가정 해 봅시다. 구현 아이디어는 다음과 같습니다.

  1. 숫자를 이진 문자열로 변환합니다.

  2. 문자열 길이에 따라 대상 비트의 인덱스를 계산합니다.

  3. 비트 문자가 '1' 인지 확인하십시오.

샘플 코드

 <?php
function isBitSet($decimalNumber, $pos) {
    // 10 진수를 바이너리 스트링으로 변환하십시오
    $binaryString = decbin($decimalNumber);

    // 문자열 에서이 비트의 인덱스를 계산하십시오,바이너리 스트링은 왼쪽에서 오른쪽으로 높아져서 낮습니다.
    $index = strlen($binaryString) - 1 - $pos;

    // 인덱스가 더 적은 경우0,이 비트가 범위를 벗어 났음을 나타냅니다,기본적으로 반환false
    if ($index < 0) {
        return false;
    }

    // 해당 비트가 있는지 확인하십시오 '1'
    return $binaryString[$index] === '1';
}

// 시험
$number = 13; // 이진은입니다1101
$position = 2; // 오른쪽에서2조금,0기본 색인,이진에서는입니다1
if (isBitSet($number, $position)) {
    echo "1. {$position} 조금是1";
} else {
    echo "1. {$position} 조금不是1";
}
?>

산출:

 1. 2 조금是1

추가 지침

  • 숫자 수는 오른쪽에서 왼쪽으로 계산되고 가장 낮은 자리는 0입니다.

  • decbin ()을 사용하여 십진수를 바이너리 스트링으로 변환 할 때, 문자열의 길이는 예상 비트 수보다 작을 수 있으며 길이를 초과하는 비트는 기본적으로 0으로 간주됩니다.

  • 여러 비트를 판단하려면 루프 또는 비트 작업을 결합 할 수 있습니다.

문자열 작업 대신 비트 작업을 사용합니다 (권장)

decbin () 및 String Index를 사용하면 기능을 달성 할 수 있지만 비트 작동 효율이 높고 쓰기 방법이 더 간단합니다.

 function isBitSetBitwise($number, $pos) {
    return (($number >> $pos) & 1) === 1;
}

위의 기능을 사용하여 특정 비트가 1인지 확인할 수도 있습니다.

결론

이 기사는 PHP의 Bindec ()Decbin () 기능을 사용하여 특정 바이너리가 1인지 여부를 결정하는 방법을 소개합니다. 간단한 학습 및 이진 비트 처리 이해에 매우 도움이되지만 실제 프로젝트에서는 비트 작업을 사용하여 성능 및 코드 가독성을 향상시키는 것이 좋습니다.