首頁  >  文章  >  後端開發  >  php怎麼將資料轉為16進位字串

php怎麼將資料轉為16進位字串

青灯夜游
青灯夜游原創
2022-08-25 18:28:013191瀏覽

3種轉換方法:1、使用dechex()函數,可以把十進位數轉換為十六進位字串,語法「dechex(指定資料值);」。 2.使用base_convert()函數,可以將任意進位值轉換為十六進位字串,語法「base_convert(資料值,原進位,16);」。 3.使用bin2hex()函數,可以把ASCII字元的字串轉換為十六進位字串,語法「bin2hex(資料值)」。

php怎麼將資料轉為16進位字串

本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦

在php中,將資料轉為16進位字串分兩種情況:

  • 將其他進位的資料轉為16進位字串

  • 將ASCII 字元的字串轉為16進位字串

不同情況,使用的函數不同。

情況1:將其他進位的資料轉為16進位字串

PHP提供兩種函數來轉換:

  • dechex()函數

  • base_convert()函數

1、dechex( )函數轉換

dechex() 函數把十進位數轉換為十六進位數。

dechex(number);

傳回值:一個字串,包含十進制值的十六進位數。    

範例:

<?php
echo dechex("30") . "<br>";
echo dechex("10") . "<br>";
echo dechex("1587") . "<br>";
echo dechex("70");
?>

php怎麼將資料轉為16進位字串

#說明:

hexdec() 將一個十六進位字串轉換為十進位數。所能轉換的最大數值為 7ffffffff,即十進制的 2147483647。 PHP 4.1.0 開始,函數可以處理大數字,在這種情況下,它會傳回 float 類型。

hexdec() 將遇到的所有非十六進位字元替換成 0。這樣,所有左邊的零都被忽略,但右邊的零會計入值中。

2、base_convert()函數轉換

base_convert() 函數在任意進位之間轉換數字。

base_convert(number,frombase,tobase);
參數 描述
#number 必要。規定要轉換的數字。
frombase 必要。規定數字原來的進制。介於 2 和 36 之間(包括 2 和 36)。高於十進制的數字以字母 a-z 表示,例如 a 表示 10,b 表示 11 以及 z 表示 35。
tobase 必要。規定要轉換的進制。介於 2 和 36 之間(包括 2 和 36)。高於十進制的數字以字母 a-z 表示,例如 a 表示 10,b 表示 11 以及 z 表示 35。

當參數 tobase 的值為16時,可將其他進位數轉換為16進位數。

範例:

<?php
echo base_convert("30", 10, 16) . "<br>";
echo base_convert("364", 8, 16) . "<br>";
?>

php怎麼將資料轉為16進位字串

說明:

base_convert()函數也可以實作16進位轉其他進制,此時參數frombase的值需要固定值16。

範例16轉10:

<?php
echo base_convert("1e", 16, 10) . "<br>";
echo base_convert("a", 16, 10) . "<br>";
echo base_convert("11ff", 16, 10) . "<br>";
echo base_convert("cceeff", 16, 10);
?>

php怎麼將資料轉為16進位字串

如果只是想16進位轉10進制,還有一個更方便的函數hexdec() 

hexdec() 將一個十六進位字串轉換為十進制數。所能轉換的最大數值為 7ffffffff,即十進制的 2147483647。 PHP 4.1.0 開始,函數可以處理大數字,在這種情況下,它會傳回 float 類型。

hexdec() 將遇到的所有非十六進位字元替換成 0。這樣,所有左邊的零都被忽略,但右邊的零會計入值中。

<?php
echo hexdec("1e") . "<br>";
echo hexdec("a") . "<br>";
echo hexdec("11ff") . "<br>";
echo hexdec("cceeff");
?>

php怎麼將資料轉為16進位字串

情況2:將ASCII 字元的字串轉為16進位字串

bin2hex() 函數把ASCII 字元的字串轉換為十六進位值。

bin2hex(string)

傳回值:傳回要轉換字串的十六進位值。

<?php
echo bin2hex("Hello!")."<br>";
echo bin2hex("123")."<br>";
echo bin2hex("10")."<br>";
?>

php怎麼將資料轉為16進位字串

推薦學習:《PHP影片教學

以上是php怎麼將資料轉為16進位字串的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn