Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

PHP 二進位轉十進位 — 簡單逐步指南

二進位轉十進位是將二進位數字(基數 2,僅用 0 和 1)轉換為等價十進位數字(基數 10 形式)的過程。

本文將學習在 PHP 中用不同方法將二進位數字轉換為十進位形式。

二進位轉十進位運作原理

將二進位數字轉十進位,將每個二進位數字乘以 2 的位置次方(從右邊起第 0 位),再將所有結果相加

二進位轉十進位轉換:1011 位置:3 2 1 0 二進位:1 0 1 1 計算:1×2³ 0×2² 1×2¹ 1×2⁰ = 8 = 0 = 2 = 1 結果:8 + 0 + 2 + 1 = 11

方法 1:使用內建 bindec() 函式

PHP 提供 bindec() 函式直接將二進位數字轉十進位

 <?php $binary = "101"; // 使用 bindec() 轉換二進位為十進位 $decimal = bindec($binary); echo "Binary $binary = Decimal $decimal"; ?> 
 Binary 101 = Decimal 5 

方法 2:使用迴圈手動轉換

此方法透過遍歷每個二進位數字手動計算十進位值

 <?php $binary = "1011"; $decimal = 0; $length = strlen($binary); // 從右到左遍歷每個數字 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)效能關鍵場合

結論

PHP 中簡單二進位轉十進位用 bindec()。教學目的或自訂邏輯時,用迴圈或位元運算實作手動轉換。

PHP 二進位轉十進位 — 簡單逐步指南