php 实现二进制加法运算

来源:互联网 发布:艾尔杰弗森 知乎 编辑:程序博客网 时间:2024/06/10 17:02

php实现二进制加法:

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

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

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

<?phpfunction 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

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

进制转换:

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

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

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

【例】:

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



0 0
原创粉丝点击