zoukankan      html  css  js  c++  java
  • 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

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

    进制转换:

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

    【例】:
    规律:个位上的数字的次数是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



  • 相关阅读:
    【Python】supervisor安装和管理celery
    【MySQL】pt-query-digest数据处理并关联业务
    【Python】pip国内安装源和yum恢复
    【Python】Celery异步处理
    【转】Java中堆和栈的区别
    三种简单排序算法
    哈夫曼(Huffman)编码
    SpringMVC之文件上传
    SpringMVC之类型转换
    SpringMVC之表单校验
  • 原文地址:https://www.cnblogs.com/MRPUNK/p/3849295.html
Copyright © 2011-2022 走看看