php 實現二進制加法運算

php實現二進制加法:php

思路:沒有工做中應用過此場景,但十進制的加法仍是常常作的,能不能用十進制加法變相實現呢?函數

答案是能夠的,而且php也提供進制間轉換的函數,個人實現使用了spa

bindec():二進制轉十進制;decbin():十進制轉二進制code

<?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世紀德國數理哲學大師萊布尼茲發現blog

當前計算機系統使用的基本上是二進制系統,數據在計算機中主要是以補碼形式存儲的。ip

        運算:it

加法:分四種狀況:io

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

乘法:分四種狀況:class

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
相關文章
相關標籤/搜索