📅  最后修改于: 2023-12-03 15:13:39.397000             🧑  作者: Mango
In programming, it is often necessary to convert binary (base-2) numbers to decimal (base-10) numbers. This can be achieved using various algorithms and programming techniques. In this guide, we will explore different methods to convert binary numbers to decimal in PHP.
// Binary to decimal conversion using built-in functions
$binaryNumber = "101010"; // example binary number
$decimalNumber = bindec($binaryNumber);
echo "Binary number: $binaryNumber\n";
echo "Decimal number: $decimalNumber\n";
In this method, we utilize the bindec()
function provided by PHP. It converts a binary string to its decimal equivalent.
// Binary to decimal conversion without using built-in functions
$binaryNumber = "101010"; // example binary number
$decimalNumber = 0;
$power = 0;
// Reverse the binary number for easier processing
$reversedBinaryNumber = strrev($binaryNumber);
// Loop through each digit of the reversed binary number
for ($i = 0; $i < strlen($reversedBinaryNumber); $i++) {
$digit = intval($reversedBinaryNumber[$i]);
// Only consider valid binary digits (0 or 1)
if ($digit === 0 || $digit === 1) {
$decimalNumber += $digit * pow(2, $power);
$power++;
} else {
echo "Invalid binary number!\n";
break;
}
}
echo "Binary number: $binaryNumber\n";
echo "Decimal number: $decimalNumber\n";
This method demonstrates manual conversion of a binary number to decimal without using any built-in functions. It involves reversing the binary number and iterating through each digit, multiplying it by the corresponding power of 2, and summing the results.
// Recursive binary to decimal conversion
function binaryToDecimal($binaryNumber) {
// Base case: empty binary number
if ($binaryNumber === "") {
return 0;
}
$lastDigit = intval(substr($binaryNumber, -1));
$remainingBinary = substr($binaryNumber, 0, -1);
return binaryToDecimal($remainingBinary) * 2 + $lastDigit;
}
$binaryNumber = "101010"; // example binary number
$decimalNumber = binaryToDecimal($binaryNumber);
echo "Binary number: $binaryNumber\n";
echo "Decimal number: $decimalNumber\n";
This algorithm demonstrates a recursive approach to convert a binary number to decimal. It recursively calculates the decimal value by continuously dividing the binary number and adding the remainder to the result.
These are three different methods to convert a binary number to decimal in PHP. Choose the method that suits your needs and coding style.