在PHP 中,處理二進制和十進制之間的轉換非常方便,主要依賴於兩個內置函數: bindec()和decbin() 。這兩個函數分別用於二進制轉十進制和十進制轉二進制。本文將詳細介紹這兩個函數的用法及如何結合使用它們,實現數據的雙向轉換。
bindec()函數用於將一個二進制數(字符串形式)轉換為十進制數。它接收一個字符串參數,該字符串只包含字符0和1 ,返回對應的十進制整數。
文法:
int bindec ( string $binary_string )
示例:
<?php
$binary = "1101"; // 二進製字符串
$decimal = bindec($binary);
echo $decimal; // 輸出13
?>
decbin()函數則是將十進制整數轉換為二進製字符串。它接收一個整數作為參數,返回該整數對應的二進製字符串。
文法:
string decbin ( int $number )
示例:
<?php
$decimal = 13;
$binary = decbin($decimal);
echo $binary; // 輸出1101
?>
下面是一個完整的示例,展示如何用這兩個函數實現二進制和十進制之間的相互轉換:
<?php
// 定义一个二進製字符串
$binaryStr = "101101";
// 二進制轉十進制
$decimalNum = bindec($binaryStr);
echo "二進制 {$binaryStr} 轉換為十進制是: {$decimalNum}\n";
// 十進制转二進制
$binaryConverted = decbin($decimalNum);
echo "十進制 {$decimalNum} 转换为二進制是: {$binaryConverted}\n";
?>
輸出結果:
二進制 101101 轉換為十進制是: 45
十進制 45 转换为二進制是: 101101
數據存儲與傳輸:有些系統以二進製字符串保存數據,為了計算或展示需要轉成十進制數字。
數字處理:在一些低級運算或算法中,需要頻繁在二進制與十進制間切換。
用戶輸入:用戶可能以二進制形式輸入數字,需要轉換成十進制用於程序邏輯處理。
bindec()和decbin()只支持正整數轉換,負數的轉換需要額外處理。
輸入的二進製字符串必須是有效的,否則bindec()返回0。
二進製字符串過長可能導致結果超出整數範圍,可考慮使用GMP 擴展處理大數。