1. 程式人生 > 實用技巧 >PHP進位制轉換函式

PHP進位制轉換函式

## php進位制轉換函式如下:
    bindec() — 二進位制轉換為十進位制
    decbin() — 十進位制轉換為二進位制
    dechex() — 十進位制轉換為十六進位制
    decoct() — 十進位制轉換為八進位制
    hexdec() — 十六進位制轉換為十進位制
    octdec() — 八進位制轉換為十進位制
    base_convert()– 在任意進位制之間轉換數字

### 應用闡明如下:

#### 一,十進位制(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() 將一個十六進位制字串轉換為十進位制數。所能轉換的最大數值為 7fffffff,即十進位制的 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。

#### 六,ASCII編碼是計算機所能顯示字元的編碼,它的取值範圍是0-255,其中包括標點、字母、數字、漢字等。在程式設計過程中,經常把指定的字元轉化為ASCII碼進行比較。
下面是PHP提供的轉換ASCII碼和字元的函式。
#####1.chr()函式
    該函式用於將ASCII碼值轉化為字串。其函式宣告如下:
    string chr (int ascii);
#####2.ord()函式
    該函式用於將字串轉化為ASCII碼值。其函式宣告如下:
    int ord(string str);
#####示例:
    使用chr()函式和ord()函式進行字串與ASCII碼之間的轉換,程式程式碼如下:
    $str1=chr(88);
    echo $str1;               //返回值為X
    echo "/t";
    $str2=ord('S');
    echo $str2;               //返回值為83