《PHP學(xué)習(xí):PHP實(shí)現(xiàn)十進(jìn)制、二進(jìn)制、八進(jìn)制和十六進(jìn)制轉(zhuǎn)換相關(guān)函數(shù)用法分析》要點(diǎn):
本文介紹了PHP學(xué)習(xí):PHP實(shí)現(xiàn)十進(jìn)制、二進(jìn)制、八進(jìn)制和十六進(jìn)制轉(zhuǎn)換相關(guān)函數(shù)用法分析,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
PHP實(shí)戰(zhàn)本文實(shí)例講述了PHP實(shí)現(xiàn)十進(jìn)制、二進(jìn)制、八進(jìn)制和十六進(jìn)制轉(zhuǎn)換相關(guān)函數(shù)用法.分享給大家供大家參考,具體如下:
PHP實(shí)戰(zhàn)1.二進(jìn)制:
PHP實(shí)戰(zhàn)1.1.二進(jìn)制轉(zhuǎn)十進(jìn)制:
PHP實(shí)戰(zhàn)函數(shù):bindec(string $binary_string)
PHP實(shí)戰(zhàn)@param $binary_string 參數(shù)表示所要轉(zhuǎn)換的二進(jìn)制字符串.
@return? 返回與$binary_string參數(shù)所表示的二進(jìn)制數(shù)的十進(jìn)制數(shù)等價(jià)值.
PHP實(shí)戰(zhàn)函數(shù)說明:
PHP實(shí)戰(zhàn)bindec()
將一個(gè)二進(jìn)制數(shù)轉(zhuǎn)換成Integer類型或者出于大小的需要,轉(zhuǎn)換為float類型.bindec()
將所有的$binary_string值解釋為無符號(hào)整數(shù).這是因?yàn)閎indec()函數(shù)將其最高有效位視為數(shù)量級(jí)而非符號(hào)位.【即最高位0或1并不被bindec()表示為+或-而是按值來表示1就是1,0就是0】
PHP實(shí)戰(zhàn)注意:參數(shù)必須為字符串,使用其他的數(shù)據(jù)類型會(huì)導(dǎo)致不可預(yù)知的結(jié)果.
PHP實(shí)戰(zhàn)范例:
PHP實(shí)戰(zhàn)
<?php
echo bindec('10010') . "\n";
echo bindec('00110') . "\n";
echo bindec('1111') . "\n";
PHP實(shí)戰(zhàn)以上程序語(yǔ)句會(huì)依次輸出:18,6,15
PHP實(shí)戰(zhàn)1.2.二進(jìn)制轉(zhuǎn)十六進(jìn)制
PHP實(shí)戰(zhàn)函數(shù):bin2hex(string $str)
PHP實(shí)戰(zhàn)@param? $str 將要轉(zhuǎn)換的ASCII字符的字符串.
@return? 返回轉(zhuǎn)換字符串的十六進(jìn)制值.
PHP實(shí)戰(zhàn)函數(shù)說明:
PHP實(shí)戰(zhàn)bin2hex()
函數(shù)把 ASCII 字符的字符串轉(zhuǎn)換為十六進(jìn)制值.字符串可通過使用 pack() 函數(shù)再轉(zhuǎn)換回去.bin2hex()
函數(shù)轉(zhuǎn)換使用字節(jié)方式,高四位字優(yōu)先.
PHP實(shí)戰(zhàn)范例:
PHP實(shí)戰(zhàn)(1)bin2hex()
轉(zhuǎn)換‘chengdu'為十六進(jìn)制值:
PHP實(shí)戰(zhàn)
<?php
$str = bin2hex('chengdu');
echo $str;
PHP實(shí)戰(zhàn)以上程序語(yǔ)句會(huì)輸出:6368656e676475
PHP實(shí)戰(zhàn)(2)把一個(gè)字符串值從二進(jìn)制轉(zhuǎn)換為十六進(jìn)制,再轉(zhuǎn)換回去:
PHP實(shí)戰(zhàn)
<?php
$str = 'chengdu';
echo bin2hex($str) . "<br/>";
echo pack("H*", bin2hex($str)) . "<br/>";
PHP實(shí)戰(zhàn)以上程序語(yǔ)句依次輸出:6368656e676475, chengdu
PHP實(shí)戰(zhàn)2.八進(jìn)制:
PHP實(shí)戰(zhàn)2.1.八進(jìn)制轉(zhuǎn)十進(jìn)制:
PHP實(shí)戰(zhàn)函數(shù):octdec(string $octal_string)
PHP實(shí)戰(zhàn)@param? $octal_string 參數(shù)表示將要轉(zhuǎn)換的八進(jìn)制字符串.
@return?? 返回$octal_string參數(shù)所表示的八進(jìn)制數(shù)的十進(jìn)制等值.
PHP實(shí)戰(zhàn)函數(shù)說明:
PHP實(shí)戰(zhàn)octdec()
可以處理Integer大數(shù)字,但在這種情況下它會(huì)返回float類型.
PHP實(shí)戰(zhàn)范例:
PHP實(shí)戰(zhàn)
<?php
echo octdec( '010' ) . "\n";
echo octdec( decoct( 45 ) );
PHP實(shí)戰(zhàn)以上程序語(yǔ)句會(huì)輸出:8, 45
PHP實(shí)戰(zhàn)3.十進(jìn)制:
PHP實(shí)戰(zhàn)3.1.十進(jìn)制轉(zhuǎn)二進(jìn)制:
PHP實(shí)戰(zhàn)函數(shù):decbin(int $number)
PHP實(shí)戰(zhàn)@param? $number? 所要轉(zhuǎn)換的十進(jìn)制數(shù)字,所能轉(zhuǎn)換的最大數(shù)值為十進(jìn)制的4294967295,其decbin結(jié)果為 32 個(gè) 1 的字符串.
@return?? 返回十進(jìn)制數(shù)字轉(zhuǎn)換后的二進(jìn)制字符串.
PHP實(shí)戰(zhàn)函數(shù)說明:
PHP實(shí)戰(zhàn)decbin()
函數(shù)所能轉(zhuǎn)換的最大十進(jìn)制數(shù)值為4294967295,其結(jié)果為 32 個(gè) 1 的字符串.
PHP實(shí)戰(zhàn)范例:
PHP實(shí)戰(zhàn)
<?php
echo decbin ( 10 ) . "\n";
echo decbin ( 50 );
PHP實(shí)戰(zhàn)以上程序語(yǔ)句會(huì)輸出:1010, 110010
PHP實(shí)戰(zhàn)3.2.十進(jìn)制轉(zhuǎn)八進(jìn)制:
PHP實(shí)戰(zhàn)函數(shù):decoct(int $number)
PHP實(shí)戰(zhàn)@param? $number 所要轉(zhuǎn)換的十進(jìn)制數(shù)字,所能轉(zhuǎn)換的最大數(shù)值是十進(jìn)制的4294967295,其decoct()結(jié)果為 "37777777777".
@return?? 返回一個(gè)包含有給定$number參數(shù)的八進(jìn)制表示的字符串.
PHP實(shí)戰(zhàn)函數(shù)說明:
PHP實(shí)戰(zhàn)decoct()
函數(shù)所能轉(zhuǎn)換的最大十進(jìn)制數(shù)數(shù)值為4294967295,其結(jié)果為 "37777777777".
PHP實(shí)戰(zhàn)范例:
PHP實(shí)戰(zhàn)
<?php
echo decoct ( 10 ) . "\n" ;
echo decoct ( 50 );
PHP實(shí)戰(zhàn)以上程序語(yǔ)句會(huì)依次輸出:12, 62
PHP實(shí)戰(zhàn)3.3.十進(jìn)制轉(zhuǎn)十六進(jìn)制:
PHP實(shí)戰(zhàn)函數(shù):dechex(int $number)
PHP實(shí)戰(zhàn)@param $number 將要轉(zhuǎn)換的十進(jìn)制數(shù)字.
@return?? 返回一個(gè)包含給定$number參數(shù)的十六進(jìn)制表示的字符串.
PHP實(shí)戰(zhàn)函數(shù)說明:
PHP實(shí)戰(zhàn)dechex()
函數(shù)所能轉(zhuǎn)換的十進(jìn)制的最大數(shù)值是:PHP_INT_MAX*2 +/- 1,在32位系統(tǒng)上是十進(jìn)制的4294967295,其dechex()
的結(jié)果為ffffffff.
PHP實(shí)戰(zhàn)注意:PHP的Integer類型是有符號(hào)的,但是dechex()只能處理無符號(hào)整數(shù),負(fù)整數(shù)會(huì)以無符號(hào)來處理.
PHP實(shí)戰(zhàn)范例:
PHP實(shí)戰(zhàn)
<?php
echo dechex ( 10 ) . "\n" ;
echo dechex ( 58 );
PHP實(shí)戰(zhàn)以上程序語(yǔ)句會(huì)依次輸出:a, 3a
PHP實(shí)戰(zhàn)4.十六進(jìn)制:
PHP實(shí)戰(zhàn)4.1.十六進(jìn)制轉(zhuǎn)二進(jìn)制:
PHP實(shí)戰(zhàn)函數(shù):hex2bin(string $data);
?? 轉(zhuǎn)換十六進(jìn)制字符串為二進(jìn)制字符串
PHP實(shí)戰(zhàn)@param? $data? 使用十六進(jìn)制表示的數(shù)據(jù).
@return??? 返回給定數(shù)據(jù)的二進(jìn)制字符串或者在失敗時(shí)返回FALSE.
PHP實(shí)戰(zhàn)函數(shù)說明:
PHP實(shí)戰(zhàn)如果輸入的十六進(jìn)制字符串是奇數(shù)長(zhǎng)度或者是無效的十六進(jìn)制字符串,則會(huì)拋出一個(gè)E_WARNING級(jí)別的錯(cuò)誤.
PHP實(shí)戰(zhàn)范例:
PHP實(shí)戰(zhàn)
<?php
$hex = hex2bin ( "6368656e67206475" );
echo $hex;
PHP實(shí)戰(zhàn)以上程序語(yǔ)句會(huì)輸出:cheng du
PHP實(shí)戰(zhàn)4.2十六進(jìn)制轉(zhuǎn)十進(jìn)制:
PHP實(shí)戰(zhàn)函數(shù):hexdec(string $hex_string);
?? 轉(zhuǎn)換十六進(jìn)制字符串為二進(jìn)制字符串
PHP實(shí)戰(zhàn)@param? $hex_string 將要轉(zhuǎn)換的十六進(jìn)制的字符串.
@return??? 返回與$hex_string參數(shù)所表示的十六進(jìn)制數(shù)等值的十進(jìn)制數(shù).
PHP實(shí)戰(zhàn)函數(shù)說明:
PHP實(shí)戰(zhàn)hexdec()
會(huì)忽略它遇到的任意非十六進(jìn)制的字符.
PHP實(shí)戰(zhàn)PHP 4.1.0 開始,該函數(shù)可以處理 integer大數(shù)字,這種情況下,它會(huì)返回float類型.
PHP實(shí)戰(zhàn)范例:
PHP實(shí)戰(zhàn)
<?php
var_dump ( hexdec ( "See" ));
var_dump ( hexdec ( "ee" ));
// 上面兩個(gè)都輸出: "int(238)"
var_dump ( hexdec ( "that" )); // 輸出"int(10)"
var_dump ( hexdec ( "a0" )); // 輸出"int(160)"
//通過上面的例子可以看出來:hexdec()會(huì)忽略它遇到的任意非十六進(jìn)制的字符.
PHP實(shí)戰(zhàn)5.任意進(jìn)制轉(zhuǎn)換的base_convert() 函數(shù):
PHP實(shí)戰(zhàn)函數(shù):base_convert(string $number, int $frombase, int $tobase)
PHP實(shí)戰(zhàn)@param $number 將要轉(zhuǎn)換的的數(shù).
@param? $frombase參數(shù)$number的進(jìn)制.
@param? $tobase 將要轉(zhuǎn)換成的進(jìn)制.
@return?? 返回一個(gè)包含$number以$tobase進(jìn)制表示的字符串.
PHP實(shí)戰(zhàn)函數(shù)說明:
PHP實(shí)戰(zhàn)$number本身的進(jìn)制由$formbase來指定.
$formbase和$tobase都只能是2和36(包括2和36)之間的整數(shù)值.
PHP實(shí)戰(zhàn)注意:由于使用內(nèi)部的 "double" 或 "float" 類型,base_convert()的操作可能會(huì)導(dǎo)致大數(shù)值中的精度丟失.
PHP實(shí)戰(zhàn)范例:
PHP實(shí)戰(zhàn)
<?php
$hexadecimal = 'A37334' ;
echo base_convert ( $hexadecimal , 16 , 2 );
//print 101000110111001100110100
echo base_convert ( $hexadecimal , 16 , a);
//print 10711860
PHP實(shí)戰(zhàn)PS:這里再為大家推薦幾款計(jì)算與轉(zhuǎn)換工具供大家參考使用:
PHP實(shí)戰(zhàn)在線任意進(jìn)制轉(zhuǎn)換工具:
http://tools.jb51.net/transcoding/hexconvert
PHP實(shí)戰(zhàn)科學(xué)計(jì)算器在線使用_高級(jí)計(jì)算器在線計(jì)算:
http://tools.jb51.net/jisuanqi/jsqkexue
PHP實(shí)戰(zhàn)在線計(jì)算器_標(biāo)準(zhǔn)計(jì)算器:
http://tools.jb51.net/jisuanqi/jsq
PHP實(shí)戰(zhàn)更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP數(shù)學(xué)運(yùn)算技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計(jì)算法總結(jié)》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php字符串(string)用法總結(jié)》及《php常見數(shù)據(jù)庫(kù)操作技巧匯總》
PHP實(shí)戰(zhàn)希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助.
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/927.html