首頁  >  文章  >  後端開發  >  PHP函數之十進制、二進制、八進制和十六進制的轉換

PHP函數之十進制、二進制、八進制和十六進制的轉換

不言
不言原創
2018-04-10 17:17:562426瀏覽

本篇文章給大家分享的內容是PHP函數之十進制、二進制、八進制和十六進制的轉換,有著一定的參考價值,有需要的朋友可以參考一下

中文字符編碼研究系列第一期,PHP函數篇詳解十進位、二進位、八進位和十六進位互相轉換函數說明,主要掌握各進位轉換的方法,以應用於實際開發

一,十進位(decimal system)轉換函數說明
1,十進位轉二進位decbin() 函數,如下實例

##

echo decbin(12); //输出 1100 
echo decbin(26); //输出 11010 
decbin 
(PHP 3, PHP 4, PHP 5) 
decbin -- 十进制转换为二进制

說明

string decbin ( int number )
傳回字串,包含有給定number 參數的二進位表示。所能轉換的最大數值為十進制的 4294967295,其結果為 32 個 1 的字串。

2,十進位轉八進位decoct() 函數


echo decoct(15); //输出 17 
echo decoct(264); //输出 410 
decoct 
(PHP 3, PHP 4, PHP 5) 
decoct -- 十进制转换为八进制

說明

string decoct ( int number )
傳回一字串,包含有給定number 參數的八進位表示。所能轉換的最大數值為十進制的 4294967295,其結果為 "37777777777"。

3,十進制轉十六進位dechex() 函數


echo dechex(10); //输出 a 
echo dechex(47); //输出 2f 
dechex 
(PHP 3, PHP 4, PHP 5) 
dechex -- 十进制转换为十六进制

說明

string dechex ( int number )
傳回一字串,包含有給定number 參數的十六進位表示法。所能轉換的最大數值為十進制的 4294967295,其結果為 "ffffffff"。


二,二進位(binary system)轉換函數說明 1,二進位轉十六位進bin2hex() 函數

$binary = "11111001"; 
$hex = dechex(bindec($binary)); 
echo $hex;//输出f9 
bin2hex 
(PHP 3 >= 3.0.9, PHP 4, PHP 5) 
bin2hex -- 将二进制数据转换成十六进制表示

說明

string bin2hex ( string str )
傳回ASCII 字串,為參數str 的十六進位表示。轉換使用位元組方式,高四位元組優先。


2,二進位轉十制進 bindec() 函數

#

echo bindec('110011'); //输出 51 
echo bindec('000110011'); //输出 51 
echo bindec('111'); //输出 7 
bindec 
(PHP 3, PHP 4, PHP 5) 
bindec -- 二进制转换为十进制 
说明 
number bindec ( string binary_string )

傳回 binary_string 參數所表示的二進位數的十進位等價值。

bindec() 將一個二進位數轉換成 integer。可轉換的最大的數為 31 位元 1 或說十進制的 2147483647。 PHP 4.1.0 開始,函數可以處理大數值,在這種情況下,它會傳回 float 類型。


三,八進位(octal system)轉換函數說明 八進位轉十進位octdec() 函數


echo octdec('77'); //输出 63 
echo octdec(decoct(45)); //输出 45 
octdec 
(PHP 3, PHP 4, PHP 5) 
octdec -- 八进制转换为十进制 
说明 
number octdec ( string octal_string )

傳回octal_string 參數所表示的八進制數的十進制等值。可轉換的最大的數值為 17777777777 或十進制的 2147483647。 PHP 4.1.0 開始,函數可以處理大數字,在這種情況下,它會傳回 float 類型。



四,十六進位(hexadecimal)轉換函數說明
十六進位轉十進位hexdec()函數


var_dump(hexdec("See")); 
var_dump(hexdec("ee")); 
// both print "int(238)" 
var_dump(hexdec("that")); // print "int(10)" 
var_dump(hexdec("a0")); // print "int(160)" 
hexdec 
(PHP 3, PHP 4, PHP 5) 
hexdec -- 十六进制转换为十进制 
说明 
number hexdec ( string hex_string )

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

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


五,任意進位轉換 base_convert() 函數

#

$hexadecimal = 'A37334'; 
echo base_convert($hexadecimal, 16, 2);//输出 101000110111001100110100 
base_convert 
(PHP 3 >= 3.0.6, PHP 4, PHP 5) 
base_convert -- 在任意进制之间转换数字 
说明 
string base_convert ( string number, int frombase, int tobase )

傳回字串,包含 number 以 tobase 進位的表示。 number 本身的進位由 frombase 指定。 frombase 和 tobase 都只能在 2 和 36 之間(包括 2 和 36)。高於十進制的數字以字母 a-z 表示,例如 a 表示 10,b 表示 11 以及 z 表示 35。


這裡主要是把PHP進位轉換函數進行整理,方便開發查找,相關具體函數說明請參考PHP手冊。請關注下一期中文字符編碼研究系列。

相關推薦:

Python使用struct處理二進位的方法詳解

C# 中十進位與二進位、十六進制、八進位轉換詳解

php 實作進位轉換(二進位、八進位、十六進位)互相轉換實作碼

##

以上是PHP函數之十進制、二進制、八進制和十六進制的轉換的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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