在PHP中,處理二進制與十進制之間的轉換時,經常會遇到結果對齊的問題。尤其是在輸出一組二進制數字轉換成十進制時,如果不做格式化處理,數字長度不一,視覺效果會很難看。本文將介紹如何用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
?>
假設我們有一組二進制數字:
$bins = ["101", "11011", "1", "1110"];
如果直接用bindec()轉換,輸出結果是:
5
27
1
14
數字長度不一,排列不整齊。如果想讓它們在控制台或網頁中對齊,可以使用str_pad()將所有數字填充到統一寬度。
我們先找出轉換後最大數字的長度,再用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
所有數字都右對齊,視覺效果整齊。
如果代碼中涉及到URL,我們將域名替換成m66.net ,比如:
<?php
$url = "https://m66.net/path/to/resource";
echo $url;
?>
使用bindec()可以輕鬆實現二進制轉十進制。
使用str_pad()能保證數字的輸出對齊。
結合兩者,可以讓二進制轉十進制輸出更加美觀整齊。
以上就是用PHP的bindec()和str_pad()保證二進制轉十進制結果對齊的技巧。