一、位运算
位运算前需要把要运算的数转化为二进制,然后再进行计算
(1)与运算&
与运算时,除非两个同为1才为1,一个不为1就不为1
18&31
技巧:二进制与十进制之间的换算
十进制转为二进制:
将十进制数除以2,一直除到不能除为止,把其余数倒序放置即可
被除数 | 除数 | 余数 |
2 | 18 | 0 |
2 | 9 | 1 |
2 | 4 | 0 |
2 | 2 | 0 |
1 | 1 |
↑ 18转化成二进制为:10010
被除数 | 除数 | 余数 |
2 | 31 | 1 |
2 | 15 | 1 |
2 | 7 | 1 |
2 | 3 | 1 |
2 | 1 | 1 |
↑ 31转化成二进制为:11111
10010
11111
————
10010 结果为10010->转化为十进制为18
技巧:十进制转二进制:
如10010:它共有五位,按照,小数点的数法一般从后面往前面数,从第0位开始:
依次是第0位为0,第一位为1,第二位至三位都为0,第四位为1,所以 10010转化为十进制为:1*24+0*23+0*22+1*21+0*20=16+2=18
如11111 = 1*24+1*23+1*22+1*21+1*20=16+8+4+2+1=31
(2)或运算|
或运算是只要两个有一个为1就是1
18|31
10010
11111
————
11111
18|31 = 31
二、数学函数
php数学函数很多,在此只讲解几个常用的
(1)取整函数
floor($n); //去小数取整,无论小数有多大,一律去掉小数点
如:floor(4.8); 得到的值是4
ceil($n); //进一法取整,无论小数有多大,都让整数部分加1
如:ceil(4.1); 得到的值是5
(2)round($n,$point); //$n为一个数,$point为保留几位小数,默认不保留小数,四舍五入取整
如:round(4.8); //结果为5
round(4.5); //结果为5
round(4.49) //结果为4
round(4.36,1) //得到结果为4.4
(3)取随机数
round($min,$max); //如果设定最小值与最大值,则在这两个数之间取随机数(即不大于最大值和不小于最小值的这个范围内取随机数)
//如果不设定最小值与最大值,则取任易一个随机数
三、自增
如:
$i=1;
$i++; //现在$i的值就变成2,
++$i; //现在$i的值就变成3
$i++与++$i的区别
$i =1;
$j = $i++; //是先将$i的值赋给$j,$j的值为1,然后$i自增,变成2
$j = ++$i; //是先将$i的值自增,然后再赋给$j,所以$i和$j的值都是2