本文實例講述了PHP實現(xiàn)十進制、二進制、八進制和十六進制轉換相關函數(shù)用法。分享給大家供大家參考,具體如下:
1.二進制:
1.1.二進制轉十進制:
函數(shù):bindec(string $binary_string)
@param $binary_string 參數(shù)表示所要轉換的二進制字符串。
@return 返回與$binary_string參數(shù)所表示的二進制數(shù)的十進制數(shù)等價值。
函數(shù)說明:
bindec()
將一個二進制數(shù)轉換成Integer類型或者出于大小的需要,轉換為float類型。
bindec()
將所有的$binary_string值解釋為無符號整數(shù)。這是因為bindec()函數(shù)將其最高有效位視為數(shù)量級而非符號位。【即最高位0或1并不被bindec()表示為+或-而是按值來表示1就是1,0就是0】
注意:參數(shù)必須為字符串,使用其他的數(shù)據(jù)類型會導致不可預知的結果。
范例:
<?php echo bindec('10010') . "\n"; echo bindec('00110') . "\n"; echo bindec('1111') . "\n";
以上程序語句會依次輸出:18,6,15
1.2.二進制轉十六進制
函數(shù):bin2hex(string $str)
@param $str 將要轉換的ASCII字符的字符串。
@return 返回轉換字符串的十六進制值。
函數(shù)說明:
bin2hex()
函數(shù)把 ASCII 字符的字符串轉換為十六進制值。字符串可通過使用 pack() 函數(shù)再轉換回去。
bin2hex()
函數(shù)轉換使用字節(jié)方式,高四位字優(yōu)先。
范例:
(1)bin2hex()
轉換‘chengdu'為十六進制值:
<?php $str = bin2hex('chengdu'); echo $str;
以上程序語句會輸出:6368656e676475
(2)把一個字符串值從二進制轉換為十六進制,再轉換回去:
<?php $str = 'chengdu'; echo bin2hex($str) . "<br/>"; echo pack("H*", bin2hex($str)) . "<br/>";
以上程序語句依次輸出:6368656e676475, chengdu
2.八進制:
2.1.八進制轉十進制:
函數(shù):octdec(string $octal_string)
@param $octal_string 參數(shù)表示將要轉換的八進制字符串。
@return 返回$octal_string參數(shù)所表示的八進制數(shù)的十進制等值。
函數(shù)說明:
octdec()
可以處理Integer大數(shù)字,但在這種情況下它會返回float類型。
范例:
<?php echo octdec( '010' ) . "\n"; echo octdec( decoct( 45 ) );
以上程序語句會輸出:8, 45
3.十進制:
3.1.十進制轉二進制:
函數(shù):decbin(int $number)
@param $number 所要轉換的十進制數(shù)字,所能轉換的最大數(shù)值為十進制的4294967295,其decbin結果為 32 個 1 的字符串。
@return 返回十進制數(shù)字轉換后的二進制字符串。
函數(shù)說明:
decbin()
函數(shù)所能轉換的最大十進制數(shù)值為4294967295,其結果為 32 個 1 的字符串。
范例:
<?php echo decbin ( 10 ) . "\n"; echo decbin ( 50 );
以上程序語句會輸出:1010, 110010
3.2.十進制轉八進制:
函數(shù):decoct(int $number)
@param $number 所要轉換的十進制數(shù)字,所能轉換的最大數(shù)值是十進制的4294967295,其decoct()結果為 "37777777777"。
@return 返回一個包含有給定$number參數(shù)的八進制表示的字符串。
函數(shù)說明:
decoct()
函數(shù)所能轉換的最大十進制數(shù)數(shù)值為4294967295,其結果為 "37777777777"。
范例:
<?php echo decoct ( 10 ) . "\n" ; echo decoct ( 50 );
以上程序語句會依次輸出:12, 62
3.3.十進制轉十六進制:
函數(shù):dechex(int $number)
@param $number 將要轉換的十進制數(shù)字。
@return 返回一個包含給定$number參數(shù)的十六進制表示的字符串。
函數(shù)說明:
dechex()
函數(shù)所能轉換的十進制的最大數(shù)值是:PHP_INT_MAX*2 +/- 1,在32位系統(tǒng)上是十進制的4294967295,其dechex()
的結果為ffffffff。
注意:PHP的Integer類型是有符號的,但是dechex()只能處理無符號整數(shù),負整數(shù)會以無符號來處理。
范例:
<?php echo dechex ( 10 ) . "\n" ; echo dechex ( 58 );
以上程序語句會依次輸出:a, 3a
4.十六進制:
4.1.十六進制轉二進制:
函數(shù):hex2bin(string $data);
轉換十六進制字符串為二進制字符串