php 实现二进制加法运算

php实现二进制加法:

思路:没有工作中应用过此场景,但十进制的加法还是经常做的,能不能用十进制加法变相实现呢?

答案是可以的,并且php也提供进制间转换的函数,我的实现使用了

bindec():二进制转十进制;decbin():十进制转二进制

<?php

function binplus($arg1,$arg2){
if($arg1 == '' || $arg2 == ''){
return false;
}
$tmpsum = bindec($arg1) + bindec($arg2);
return decbin($tmpsum);
}
echo binplus('101','1');

知识普及:

二进制:计算机技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。他的基数是2,进位规则为:“逢二进一”,由18世纪德国数理哲学大师莱布尼兹发现

当前计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码形式存储的。

运算:

加法:分四种情况:

0+0=0;0+1=1;1+0=1;1+1=10

乘法:分四种情况:

0*0=0;0*1=0;1*0=0;1*1=1

减法:0-0=0;1-1=0;1-0=1;0-1=1

除法:00÷1=0;1÷1=1

在计算机中,除了十进制是有符号的外,其他如二进制、八进制、十六进制都是无符号的。

进制转换:

二进制转十进制:“按权展开求和”

php 实现二进制加法运算

【例】:
php 实现二进制加法运算
规律:个位上的数字的次数是0,十位上的数字的次数是1,......,依次递增,而十
分位的数字的次数是-1,百分位上数字的次数是-2,......,依次递减。
注意:不是任何一个十进制小数都能转换成有限位的二进制数。

十进制转二进制:“除以2取余,逆序排列”

【例】:php 实现二进制加法运算
89÷2 ……1
44÷2 ……0
22÷2 ……0
11÷2 ……1
5÷2 ……1
2÷2 ……0
1
· 十进制小数转二进制数:“乘以2取整,顺序排列”(乘2取整法)
【例】: (0.625)10= (0.101)2
0.625X2=1.25 ……1
0.25 X2=0.50 ……0
0.50 X2=1.00 ……1
上一篇:Windows 10 x64 安装 Visual Basic 6.0 SP6


下一篇:Ubuntu 16.04 Matlab2015b安装