PHP入门之:二进制、八进制、十进制、十六进制

作者: JONE 分类: PHP/MySQL 发布时间: 2017-07-16 23:07

1、进制介绍

计算机底层的数据运算和存储都是二进制数据。

计算机语言就是二进制,计算机能直接识别二进制数据,其它数据都不能直接识别。

计算机的数据转换,基本都是操作系统自动转换的。

dec 十进制 ¸  bin 二进制  ¸  oct 八进制   ¸ hex 十六进制

2、常用进制

  • 二进制:有2个基本数字,分别为0、1,运算规则”逢二进一”。
  • 十进制:有10个基本数字,分别为0、1、2、3、4、5、6、7、8、9,运算规则”逢十进一”;
  • 八进制:有8个基本数字,分别为0、1、2、3、4、5、6、7,运算规则”逢八进一”
  • 十六进制:有16个基本数字,分别为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,运算规则”逢十六进一”。

进制表

10进制  0  1  2  3  4  5  6  7 8  9  10  11  12  13  14  15  16
8进制  0  1  2  3  4  5  6  7 10  11  12  13  14  15  16  17  20
16进制  0  1  2  3  4  5  6  7 8  9  A  B  C  D  E  F  10
2进制  0  1  10  11  100  101  110  111 1000  1001  1010  1011  1100  1101  1110  1111  10000

一个8进制数,可以用3个二进制数,来表示。如:(567)8 = (101 110 111)2

一个16进制数,可以用4位二进制数,来表示。如:(A23)16 = (1010 0010 0011)2

3、10进制转成2进制

原理:除2取余法。第一次将整数除以2,取余数;然后,再将商除以2,再取余数;一直除下去,直到商为0,就除完了。最后读数时,从最后一位读起。

举例:将(10)10 转成 二进制?

第N次 整数10 余数
第1次 10/2 5 0
第2次 5/2 2 1
第3次 2/2 1 0
第4次 1/2 0 1

结果是:(1010)2

函数decbin()可以将十进制转成二进制。

288-1

4、10进制转成8进制

原理:除8取余法。第一次将整数除以8,取余数;然后,再将商除以8,再取余数;一直除下去,直接商为0,就除完了。最后读数时,从最后一位读起。

举例:(678)10 转成八进制

函数decoct()可以将十进制转成八进制。

288-2

5、10进制转成16进制

原理:除16取余法。第一次将整数除以16,取余数;然后,再将商除以16,再取余数;一直除下去,直接商为0,就除完了。最后读数时,从最后一位读起。

函数dechex()可以将十进制转成十六进制

举例:(6789)10转成十六进制?

288-3

6、2进制转成10进制

原理:按权相加法。2进制每一位上的数,乘以所在的位权(指数常数),然后将各个乘积求和。

举例:(1010)2转成十进制?

(1010)2 = 1*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 8 + 0 + 2 + 0 = (10)10

函数bindec()将二进制转成十进制。

288-4

7、8进制转成10进制

原理:按权相加法。8进制每一位上的数,乘以所在的位权(指数常数),然后将各个乘积求和。

举例:(1246)8转成十进制?

(1246)8 = 1*8^3 + 2*8^2 + 4*8^1 + 6*8^0 = 512 +128 + 32 + 6 = (678)10

函数octdec()将八进制转成十进制。

288-5

8、16进制转成10进制

原理:按权相加法。16进制每一位上的数,乘以所在的位权(指数常数),然后将各个乘积求和。

函数hexdec()将十六进制转成十进制。

288-6

发表评论

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