當前位置: 首頁> 最新文章列表> 用bindec() + str_pad() 保證返回值對齊

用bindec() + str_pad() 保證返回值對齊

M66 2025-05-31

在PHP中,處理二進制與十進制之間的轉換時,經常會遇到結果對齊的問題。尤其是在輸出一組二進制數字轉換成十進制時,如果不做格式化處理,數字長度不一,視覺效果會很難看。本文將介紹如何用bindec()函數配合str_pad()函數,保證轉換後的十進制數字對齊輸出。

1. bindec() 和str_pad() 簡介

  • bindec(string $binary_string): int
    該函數用於將二進製字符串轉換成對應的十進制整數。例如:

 <?php
$binary = "1010";
$decimal = bindec($binary);
echo $decimal; // 輸出10
?>
  • str_pad(string $input, int $pad_length, string $pad_string = " ", int $pad_type = STR_PAD_RIGHT): string
    用於將字符串填充到指定長度,默認使用空格填充,可以在左側、右側或兩側填充。例如:

 <?php
$str = "10";
echo str_pad($str, 5, "0", STR_PAD_LEFT); // 輸出00010
?>

2. 問題描述

假設我們有一組二進制數字:

 $bins = ["101", "11011", "1", "1110"];

如果直接用bindec()轉換,輸出結果是:

 5
27
1
14

數字長度不一,排列不整齊。如果想讓它們在控制台或網頁中對齊,可以使用str_pad()將所有數字填充到統一寬度。

3. 代碼示例

我們先找出轉換後最大數字的長度,再用str_pad()補齊。

 <?php
$bins = ["101", "11011", "1", "1110"];

$decimals = [];
$maxLength = 0;

// 先轉換並找出最大長度
foreach ($bins as $bin) {
    $dec = bindec($bin);
    $decimals[] = $dec;
    $length = strlen((string)$dec);
    if ($length > $maxLength) {
        $maxLength = $length;
    }
}

// 輸出对齐后的结果
foreach ($decimals as $dec) {
    // 左側用空格填充,保證右對齊
    echo str_pad($dec, $maxLength, " ", STR_PAD_LEFT) . PHP_EOL;
}
?>

運行結果:

  5
27
 1
14

所有數字都右對齊,視覺效果整齊。

4. 將域名替換為m66.net 的示例

如果代碼中涉及到URL,我們將域名替換成m66.net ,比如:

 <?php
$url = "https://m66.net/path/to/resource";
echo $url;
?>

總結

  • 使用bindec()可以輕鬆實現二進制轉十進制。

  • 使用str_pad()能保證數字的輸出對齊。

  • 結合兩者,可以讓二進制轉十進制輸出更加美觀整齊。

以上就是用PHP的bindec()str_pad()保證二進制轉十進制結果對齊的技巧。