Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP bindec() 함수 완벽 가이드 – 2진수를 10진수로 변환하는 방법

PHP bindec() 함수란?

bindec() 함수는 문자열 형태로 입력된 2진수(binary number)를 해당하는 10진수(decimal) 값으로 변환하여 반환하는 PHP 내장 함수입니다. 문자열 안의 2진수는 항상 부호 없는 정수(unsigned integer)로 해석되며, 음수 기호가 포함되어 있더라도 무시됩니다.

이 함수는 일반적으로 정수(integer)를 반환하지만, 변환 결과 값이 너무 큰 경우에는 float(부동소수점) 타입으로 반환될 수도 있습니다.

구문 (Syntax)

bindec ( string $binary_string ) : number

매개변수 (Parameters)

번호매개변수 및 설명
1binary_string
2진수 표현을 담고 있는 문자열입니다. 1과 0을 제외한 유효하지 않은 문자들은 모두 무시됩니다.

반환 값 (Return Values)

PHP bindec() 함수는 문자열에 주어진 2진수에 해당하는 10진수 값을 반환합니다.

지원 PHP 버전

이 함수는 PHP 4.x, PHP 5.x, 그리고 PHP 7.x 버전까지 모두 사용할 수 있습니다.

예제 1: 기본적인 2진수 변환

다음 예제는 '1101'이라는 2진수 문자열을 10진수로 변환하여 13을 반환합니다.

<?php
   $arg='1101';
   $val=bindec($arg);
   echo "bindec('" . $arg . "') = " . $val;
?>

실행 결과:

bindec('1101') = 13

예제 2: 유효하지 않은 문자 무시

bindec() 함수는 1 또는 0 이외의 문자를 자동으로 무시합니다. 따라서 '110011.11'은 소수점(.)이 제거된 '11001111'로 처리되며, 그 결과 10진수 207이 반환됩니다.

<?php
   $arg='110011.11';
   $val=bindec($arg);
   echo "bindec('" . $arg . "') = " . $val;
?>

실행 결과:

bindec('110011.11') = 207

예제 3: 2진수 문자가 없는 경우

문자열에 1 또는 0이 하나도 포함되어 있지 않으면, 결과값은 0이 됩니다.

<?php
   $arg='Hello';
   $val=bindec($arg);
   echo "bindec('" . $arg . "') = " . $val;
?>

실행 결과:

bindec('Hello') = 0

예제 4: 부호 없는 정수 처리

다음 예제는 bindec() 함수가 2진수 문자열을 부호 없는 정수로 취급한다는 것을 보여줍니다. 문자열 앞의 마이너스(-) 기호는 무시되므로 '-1111'은 양수 15로 변환됩니다.

<?php
   $arg='-1111';
   $val=bindec($arg);
   echo "bindec('" . $arg . "') = " . $val;
?>

실행 결과:

bindec('-1111') = 15

마무리

PHP의 bindec() 함수는 2진수 문자열을 손쉽게 10진수로 변환할 수 있는 유용한 도구입니다. 특히 유효하지 않은 문자를 자동으로 무시하고, 부호 없는 정수로 처리한다는 점을 기억하면 예상치 못한 오류를 방지할 수 있습니다. 반대 방향의 변환이 필요하다면 decbin() 함수를 함께 참고하시기 바랍니다.