현재 위치: > 최신 기사 목록> Leading 0이 Bindec () 함수를 사용할 때 결과에 ​​영향을 미칩니 까? 수동으로 제거해야합니까?

Leading 0이 Bindec () 함수를 사용할 때 결과에 ​​영향을 미칩니 까? 수동으로 제거해야합니까?

M66 2025-06-23

1. bindec () 의 기본 사용

PHP의 bindec ()는 유효한 이진 형식이어야하는 문자열 유형 매개 변수를 수용합니다. 즉, 01 자만 포함됩니다. 예는 다음과 같습니다.

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

이 예에서 "1011" 은 표준 바이너리 표현이며 결과는 소수점에서 11 입니다.


2. 주요 0이있는 이진 문자열이 결과에 영향을 미칩니 까?

대답은 다음과 같습니다. 영향을 미치지 않을 것입니다 .

bindec ()는 선행 0을 무시하고 각 비트의 무게를 정상적으로 오른쪽에서 왼쪽으로 계산합니다. 예를 들어:

 <?php
echo bindec("0001011"); // 依旧산출 11
?>

"0001011" 을 통과하더라도 PHP는 여전히 "1011" 에 따라 구문 분석되며 최종 결과는 변경되지 않습니다.

즉, Bindec ()를 사용할 때는 주요 0을 청소하기 위해 특별히 코드를 작성할 필요가 없습니다 .


3. 예 : URL 매개 변수에서 주요 0을 갖는 이진 문자열 가져 오기

사용자가 제출 한 바이너리 데이터에서 소수점 번호를 추출하는 시스템을 구축한다고 가정 해 봅시다. URL은 다음과 같습니다.

 https://m66.net/convert.php?bin=00011001

다음과 같이 처리 할 수 ​​있습니다.

 <?php
$binary = $_GET['bin'] ?? '0';
$decimal = bindec($binary);
echo "소수점 결과는입니다: $decimal";
?>

사용자가 "00011001"을 제출하더라도 출력은 여전히 ​​10 진수 25 에서 정확합니다. 추가 ltrim ($ binary, '0') 작업이 필요하지 않습니다.


4. 특별한 상황 설명

Bindec ()는 주요 0에 민감하지는 않지만주의를 기울여야 할 몇 가지 사항이 있습니다.

  • 통과 된 문자열에 01 만 포함되어 있는지 확인하십시오. 다른 문자는 기대치를 충족시키지 못하도록 계산 오류 나 출력을 유발할 수 있습니다.

  • 사용자가 빈 문자열 ( "" )을 입력하면 bindec ()가 0을 반환합니다. 이를 방지하기 위해 추가 입력 점검이 필요할 수 있습니다.