3種轉換方法:1、使用dechex()函數,可以把十進位數轉換為十六進位字串,語法「dechex(指定資料值);」。 2.使用base_convert()函數,可以將任意進位值轉換為十六進位字串,語法「base_convert(資料值,原進位,16);」。 3.使用bin2hex()函數,可以把ASCII字元的字串轉換為十六進位字串,語法「bin2hex(資料值)」。
本教學操作環境: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"); ?>
#說明:
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>"; ?>
說明:
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); ?>
如果只是想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"); ?>
情況2:將ASCII 字元的字串轉為16進位字串
bin2hex() 函數把ASCII 字元的字串轉換為十六進位值。
bin2hex(string)
傳回值:傳回要轉換字串的十六進位值。
<?php echo bin2hex("Hello!")."<br>"; echo bin2hex("123")."<br>"; echo bin2hex("10")."<br>"; ?>
推薦學習:《PHP影片教學》
以上是php怎麼將資料轉為16進位字串的詳細內容。更多資訊請關注PHP中文網其他相關文章!