进制转换

/ 0评 / 0
计算机内部只有二进制数
我们生活中常用的就是十进制。
计算机科学中经常使用的数制还有八进制和 十六进制数
进位计数制:简称数制-是按进位方式进行计数的数制叫做进位计数制。
例如:“逢十进一”是十进制,“逢二进一”是二进制,“逢R进一”就是R进制
数码:每种数制中表示基本数值大小的数字符号。(多少进制数码就是多少)
基数:每种数制中数码的个数。
最大数码=基数-1
比如 2进制 转换为 10进制:
数码:2
基数:5。
最大数码=基数-1
(10101)2=1*2^0 + 0*2^1 + 1*2^2 +0*2^3 + 1* 2^4
          =1 + 0 + 4 + 0 + 16
=21.

8进制 转换为 10进制

(23)8= 3*8^0 + 2*8^1
=19
16进制 转换为 10进制:
(a2)16 = 2*16^0 + a*16^1
=2 + 10*16
= 162
10进制 转换为 2进制 8进制 16进制的方法
比如 10进制 转换为 2进制 以 20 为例子
步骤
20/2=10................余数0
10/2 =  5................余数0
5/2    = 2................余数1
2/2    = 1................余数0
1/2    = 0................余数1(20)10 = (10100)2
方法:要转换的10进制数 除以 要转换的进制数 倒去余数10进制的转换伟 8进制 以20 为例子
步骤
20/8= 2................余数4
2/8 =   0................余数2
(20)10 = (24)816进制的转换伟 8进制 以20 为例子
20/16= 1................余数4
1/16 =   0................余数1(20)10 = (14)16
常用进制数码表示如下表所示:
书写:

(1)数字后加字母

ØBinary :二进制数     10010100B
ØDecimal:十进制数    148D(可省略)
ØOctonary:八进制数   224O或Q  或是  0224  
ØHexaDecimal :十六进制数  94H   或是  0x94

(2)括号外加下标

Ø(1001)2   (1275.1)8   (14AF.5)16
一,十进制(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)
例子 1

把八进制数转换为十进制数:

<?php
$oct = "0031";
$dec = base_convert($oct,8,10);
echo "八进制的 $oct 等于十进制的 $dec。";
?>

输出:

八进制的 0031 等于十进制的 25。

例子 2

把八进制数转换为十六进制数:

<?php
$oct = "364";
$hex = base_convert($oct,8,16);
echo "八进制的 $oct 等于十六进制的 $hex。";
?>

输出:

八进制的 364 等于十六进制的 f4。

发表评论

电子邮件地址不会被公开。 必填项已用*标注