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
在計算機中,除了十進制是有符號的外,其餘如二進制、八進制、十六進制都是無符號的。
進制轉換:
二進制轉十進制:「按權展開求和」
十進制轉二進制:「除以2取餘,逆序排列」【例】:規律:個位上的數字的次數是0,十位上的數字的次數是1,......,依次遞增,而十分位的數字的次數是-1,百分位上數字的次數是-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