在PHP 編程中,經常會遇到數值在不同進制之間轉換的需求,特別是十進制和十六進制之間的轉換。 PHP 提供了兩個非常方便的內置函數hexdec()和dechex() ,分別用於將十六進制數轉換為十進制數和將十進制數轉換為十六進制數。
hexdec()函數接受一個十六進製字符串作為參數,並返回對應的十進制整數。使用時,只需將包含十六進制數的字符串傳入即可。
<?php
$hex = "1A3F";
$decimal = hexdec($hex);
echo "十六進制數 {$hex} 轉換為十進制是: {$decimal}";
?>
輸出:
十六進制數 1A3F 轉換為十進制是: 6719
dechex()函數接受一個十進制整數作為參數,並返回對應的十六進製字符串。
<?php
$decimal = 6719;
$hex = dechex($decimal);
echo "十進制數 {$decimal} 轉換為十六進制是: {$hex}";
?>
輸出:
十進制數 6719 轉換為十六進制是: 1a3f
注意返回的十六進製字符串默認是小寫,如果需要大寫,可以結合strtoupper()函數:
<?php
$hex = strtoupper(dechex($decimal));
echo "大寫十六進制: {$hex}";
?>
輸出:
大寫十六進制: 1A3F
假設有一個簡單的網頁表單,用戶輸入十六進制數,提交後顯示對應的十進制數,反之亦然。
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (!empty($_POST['hex'])) {
$hex = $_POST['hex'];
$decimal = hexdec($hex);
echo "<p>十六進位 {$hex} 轉換為十進制是 {$decimal}</p>";
}
if (!empty($_POST['decimal'])) {
$decimal = (int)$_POST['decimal'];
$hex = dechex($decimal);
echo "<p>十進制 {$decimal} 轉換為十六進制是 {$hex}</p>";
}
}
?>
<form method="post" action="https://gitbox.net/convert.php">
<label>十六進位: <input type="text" name="hex"></label><br>
<label>十進制: <input type="text" name="decimal"></label><br>
<input type="submit" value="轉換">
</form>
在這個例子中,用戶可以通過表單輸入任意十六進製或十進制數,提交後後台會進行對應轉換並顯示結果。