3種轉(zhuǎn)換方法:1、使用dechex()函數(shù),可以把十進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制字符串,語法“dechex(指定數(shù)據(jù)值);”。2、使用base_convert()函數(shù),可以將任意進(jìn)制值轉(zhuǎn)換為十六進(jìn)制字符串,語法“base_convert(數(shù)據(jù)值,原進(jìn)制,16);”。3、使用bin2hex()函數(shù),可以把ASCII字符的字符串轉(zhuǎn)換為十六進(jìn)制字符串,語法“bin2hex(數(shù)據(jù)值)”。
本教程操作環(huán)境:windows7系統(tǒng)、PHP8.1版、DELL G3電腦
在php中,將數(shù)據(jù)轉(zhuǎn)為16進(jìn)制字符串分兩種情況:
-
將其他進(jìn)制的數(shù)據(jù)轉(zhuǎn)為16進(jìn)制字符串
-
將ASCII 字符的字符串轉(zhuǎn)為16進(jìn)制字符串
不同情況,使用的函數(shù)不同。
情況1:將其他進(jìn)制的數(shù)據(jù)轉(zhuǎn)為16進(jìn)制字符串
PHP提供兩種函數(shù)來進(jìn)行轉(zhuǎn)換:
-
dechex()函數(shù)
-
base_convert()函數(shù)
1、dechex()函數(shù)轉(zhuǎn)換
dechex() 函數(shù)把十進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)。
dechex(number);
返回值:一個字符串,包含十進(jìn)制值的十六進(jìn)制數(shù)。
示例:
<?php echo dechex("30") . "<br>"; echo dechex("10") . "<br>"; echo dechex("1587") . "<br>"; echo dechex("70"); ?>
說明:
hexdec() 將一個十六進(jìn)制字符串轉(zhuǎn)換為十進(jìn)制數(shù)。所能轉(zhuǎn)換的最大數(shù)值為 7fffffff,即十進(jìn)制的 2147483647。PHP 4.1.0 開始,該函數(shù)可以處理大數(shù)字,這種情況下,它會返回 float 類型。
hexdec() 將遇到的所有非十六進(jìn)制字符替換成 0。這樣,所有左邊的零都被忽略,但右邊的零會計入值中。
2、base_convert()函數(shù)轉(zhuǎn)換
base_convert() 函數(shù)在任意進(jìn)制之間轉(zhuǎn)換數(shù)字。
base_convert(number,frombase,tobase);
參數(shù) | 描述 |
---|---|
number | 必需。規(guī)定要轉(zhuǎn)換的數(shù)。 |
frombase | 必需。規(guī)定數(shù)字原來的進(jìn)制。介于 2 和 36 之間(包括 2 和 36)。高于十進(jìn)制的數(shù)字用字母 a-z 表示,例如 a 表示 10,b 表示 11 以及 z 表示 35。 |
tobase | 必需。規(guī)定要轉(zhuǎn)換的進(jìn)制。介于 2 和 36 之間(包括 2 和 36)。高于十進(jìn)制的數(shù)字用字母 a-z 表示,例如 a 表示 10,b 表示 11 以及 z 表示 35。 |
當(dāng)參數(shù) tobase
的值為16時,可將其他進(jìn)制數(shù)轉(zhuǎn)為16進(jìn)制數(shù)。
示例:
<?php echo base_convert("30", 10, 16) . "<br>"; echo base_convert("364", 8, 16) . "<br>"; ?>
說明:
base_convert()函數(shù)也可以實現(xiàn)16進(jìn)制轉(zhuǎn)其他進(jìn)制,此時參數(shù)frombase的值需要固定值16。
例16轉(zhuǎn)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進(jìn)制轉(zhuǎn)10進(jìn)制,還有一個更方便的函數(shù)hexdec()
hexdec() 將一個十六進(jìn)制字符串轉(zhuǎn)換為十進(jìn)制數(shù)。所能轉(zhuǎn)換的最大數(shù)值為 7fffffff,即十進(jìn)制的 2147483647。PHP 4.1.0 開始,該函數(shù)可以處理大數(shù)字,這種情況下,它會返回 float 類型。
hexdec() 將遇到的所有非十六進(jìn)制字符替換成 0。這樣,所有左邊的零都被忽略,但右邊的零會計入值中。
<?php echo hexdec("1e") . "<br>"; echo hexdec("a") . "<br>"; echo hexdec("11ff") . "<br>"; echo hexdec("cceeff"); ?>
情況2:將ASCII 字符的字符串轉(zhuǎn)為16進(jìn)制字符串
bin2hex() 函數(shù)把 ASCII 字符的字符串轉(zhuǎn)換為十六進(jìn)制值。
bin2hex(string)
返回值:返回要轉(zhuǎn)換字符串的十六進(jìn)制值。
<?php echo bin2hex("Hello!")."<br>"; echo bin2hex("123")."<br>"; echo bin2hex("10")."<br>"; ?>
推薦學(xué)習(xí):《PHP視頻教程》