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

PHP에서 이진수를 십진수로 변환 – 쉬운 단계별 가이드

2진수를 10진수로 변환하는 것은 2진수(0과 1만 사용하는 2진수)를 해당 10진수(10진수 형식)로 변환하는 과정입니다.

이 기사에서는 다양한 접근 방식을 사용하여 PHP에서 이진수를 십진수 형식으로 변환하는 방법을 알아봅니다.

2진수를 10진수로 변환하는 방법

이진수를 십진수로 변환하려면 각 이진수에 해당 위치(오른쪽의 0부터 시작)만큼 거듭제곱한 2를 곱한 다음 모든 결과를 합산하세요. ?

2진수에서 10진수로 변환:1011 위치:3 2 1 0 2진수:1 0 1 1 계산:1×2³ 0×2² 1×21 1×2? =8 =0 =2 =1 결과:8 + 0 + 2 + 1 =11

방법 1:내장된 bindec() 함수 사용하기

PHP는 bindec()를 제공합니다. 이진수를 십진수로 직접 변환하는 함수 ?

<?php
$binary = "101";
// Convert binary to decimal using bindec()
$decimal = bindec($binary);
echo "Binary $binary = Decimal $decimal";
?>
Binary 101 = Decimal 5

방법 2:루프를 이용한 수동 변환

이 접근 방식은 각 이진수를 반복하여 10진수 값을 수동으로 계산합니다. ?

<?php
$binary = "1011";
$decimal = 0;
$length = strlen($binary);
// Loop through each digit from right to left
for ($i = 0; $i < $length; $i++) {
 $digit = $binary[$length - $i - 1];
 $decimal += $digit * pow(2, $i);
}
echo "Binary $binary = Decimal $decimal";
?>
Binary 1011 = Decimal 11

방법 3:비트 왼쪽 시프트 사용

이 방법은 효율적인 변환을 위해 비트 연산을 사용합니다. ?

<?php
function binaryToDecimalBitwise($binary) {
 $decimal = 0;
 for ($i = 0; $i < strlen($binary); $i++) {
 $decimal = ($decimal << 1) + $binary[$i];
 }
 return $decimal;
}
$binary = "1111";
$decimal = binaryToDecimalBitwise($binary);
echo "Binary $binary = Decimal $decimal";
?>
Binary 1111 = Decimal 15

방법 비교

방법 시간 복잡도 공간 복잡도 최고의 대상 bindec()O(1)O(1)간단한 변환수동 루프O(n)O(1)학습 알고리즘비트 단위 시프트O(n)O(1)성능 중요

결론

bindec() 사용 PHP에서 간단한 이진수를 십진수로 변환합니다. 교육 목적이나 사용자 정의 논리의 경우 루프나 비트 연산을 사용하여 수동 변환을 구현하세요.

PHP에서 이진수를 십진수로 변환 – 쉬운 단계별 가이드