현재 위치: > 최신 기사 목록> 이진 문자열에서 비트 레벨 작업을 구현하기 위해 substr ()와 함께 php의 bindec () 함수를 사용하는 방법은 무엇입니까?

이진 문자열에서 비트 레벨 작업을 구현하기 위해 substr ()와 함께 php의 bindec () 함수를 사용하는 방법은 무엇입니까?

M66 2025-06-12

PHP에서는 이진 문자열을 처리 할 때 종종 비트의 일부를 추출하거나 수정 해야하는 경우가 종종 있습니다. bindec () 함수는 이진 문자열을 소수 정수로 변환 할 수있는 반면, substr () 함수는 문자열의 일부를 가로 채는 데 도움이 될 수 있습니다. 둘을 함께 사용하면 이진 문자열에서 비트 레벨 작업이 가능합니다.

bindec () 및 substr () 소개

  • bindec (String $ binary_string) : int
    문자열의 이진 표현을 소수 정수로 변환하십시오. 예를 들면 : bindec ( '101')는 5를 반환합니다.

  • substr (String $ string, int $ start, int $ length = null) : String
    문자열에서 서브 스트링을 자릅니다. 예를 들면 : substr ( '101101', 2, 3)은 '110'을 반환합니다.

예 : 바이너리 스트링의 비트를 추출하여 소수로 변환합니다.

비트 3에서 시작하여 4 비트 이진 번호를 추출한 다음 소수점으로 변환 할 바이너리 스트링이 있다고 가정하십시오.

 <?php
$binaryString = "1101011011"; // 원래 바이너리 문자열

// 사용 substr 인덱스에서 가로 채기 2 시작 길이는입니다 4 의 하위 문자(인덱스에 유의하십시오0시작)
$subBinary = substr($binaryString, 2, 4); // "0101"

// 사용 bindec 인터셉트 된 바이너리 스트링을 소수로 변환하십시오
$decimalValue = bindec($subBinary);

echo "이진 기판: " . $subBinary . "\n";      // 산출: 0101
echo "해당 소수점 값: " . $decimalValue . "\n"; // 산출: 5
?>

예제 설명

  • substr ($ binarystring, 2, 4) : 원래 문자열의 세 번째 문자에서 시작하여 (인덱스는 0에서 카운트) 길이는 4이며 "0101"을 얻습니다.

  • bindec ( "0101") : "0101"을 10 진수로 변환합니다.

고급 : 바이너리 스트링을 약간 수정하십시오

추출 외에도 특정 바이너리 스트링을 수정할 수도 있습니다.

 <?php
$binaryString = "1101011011";

// 할 것이다5조금(색인은입니다4)변경1
$pos = 4;
$newBit = '1';

// 문자열을 수정하십시오
$binaryString = substr_replace($binaryString, $newBit, $pos, 1);

echo "수정 된 이진 문자열: " . $binaryString . "\n";
?>

요약

substr ()를 가로 채서 문자열과 bindec () 변환 함수를 결합함으로써, 이진 문자열을 비트 수준에서 쉽게 추출하고 변환 할 수 있으며, 다른 문자열 작동 기능은보다 복잡한 이진 데이터 처리를 실현할 수 있습니다.