현재 위치: > 최신 기사 목록> PHP에서 Bindec () 함수의 반환 값은 정수 유형 (int) 또는 플로팅 포인트 유형 (float)입니까?

PHP에서 Bindec () 함수의 반환 값은 정수 유형 (int) 또는 플로팅 포인트 유형 (float)입니까?

M66 2025-06-23

php에서, bindec () 함수는 이진 문자열을 해당 10 진수 숫자로 변환하는 데 사용됩니다. 그 정의는 매우 간단합니다.

 int|float bindec(string $binary_string)

그러나 많은 개발자들이 그것을 사용할 때 의문의 여지가 있습니다 : bindec () 함수는 정수 유형 ( int ) 또는 플로팅 포인트 유형 ( float )을 반환합니까? 이 질문에 대한 답은 완전히 직관적이지 않으며 다음은 자세한 분석입니다.

bindec ()의 기본 사용

 <?php
$binary = "1010";  // 이진 번호,소수점과 같습니다10
$decimal = bindec($binary);
echo $decimal;  // 산출:10
echo gettype($decimal);  // 산출:integer
?>

이 예에서 Bindec ()는 정수 유형을 반환합니다.

이진 번호가 큰 경우 Bindec ()가 부동 소수점 번호를 반환합니다.

PHP의 정수 유형 ( INT )은 32 비트 시스템과 64 비트 시스템마다 다른 범위를 가지고 있습니다.

  • 32 비트 시스템의 최대 정수는 2,147,483,647 (약 21 억)입니다.

  • 64 비트 시스템의 최대 정수는 9,223,372,036,854,775,807 (약 9,000 억)입니다.

이진 문자열의 변환 된 값이 시스템 정수 범위를 초과하면 PHP는 자동으로 리턴 값을 플로트 로 변환합니다. 이는 PHP의 정수 유형이 크기 제한을 가지고 있기 때문에 부동 소수점 번호 유형은 더 큰 숫자 범위를 나타낼 수 있지만 정밀도를 잃을 수 있기 때문입니다.

예는 다음과 같습니다.

 <?php
// 32비트 시스템은보다 큽니다2147483647的이진 번호
$binary = "11111111111111111111111111111111";  // 32개별1,동일한4294967295,초과하다32비트 정수 범위
$decimal = bindec($binary);
echo $decimal . "\n";  // 산출:4294967295
echo gettype($decimal) . "\n";  // 32位系统산출:double (PHP가운데float유형이 표시됩니다double)
?>

32 비트 시스템 에서이 값은 최대 정수 범위를 초과하므로 반환은 부동 소수점 번호입니다.

특정 요약

  • 이진 번호에 해당하는 소수점 번호가 정수 범위 내에있는 경우 Bindec ()는 int 유형을 반환합니다.

  • 값이 정수 범위를 초과하면 bindec ()가 플로트 유형을 반환합니다.

  • 64 비트 시스템에서는 매우 큰 이진 숫자 만 반환 되는 반면 32 비트 시스템은 전환 범위가 더 적습니다.

추가 참고 : Bindec ()는 서명 된 정수를 지원하지 않습니다

bindec ()는 단순히 바이너리 문자열을 서명되지 않은 숫자로 변환하며 이진 문자열에는 양의 및 음수 징후의 개념이 없습니다. 서명 된 이진 번호를 처리 해야하는 경우 변환 로직을 직접 처리해야합니다.

공식 문서를 참조하십시오

bindec () 에 대한 자세한 지침은 PHP 매뉴얼을 방문하십시오.