php實現二進位制加法:
思路:沒有工作中應用過此場景,但十進位制的加法還是經常做的,能不能用十進位制加法變相實現呢?
答案是可以的,並且php也提供進製間轉換的函式,我的實現使用了
bindec():二進位制轉十進位制;decbin():十進位制轉二進位制
<?php
function binplus($arg1,$arg2)
$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
在計算機中,除了十進位制是有符號的外,其他如二進位制、八進位制、十六進製制都是無符號的。
進製轉換:
二進位制轉十進位制:「按權展開求和」
【例】:十進位制轉二進位制:「除以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
二進位制加法運算
兩個二進位制整數相加時,是位對位處理的,從最低的一對位 右邊 開始,依序將每一對位進行加法運算。兩個二進位制數字相加,有四種結果,如下所示 0 0 0 0 1 1 1 0 1 1 1 10 1 與 1 相加的結果是二進位制的 10 等於十進位制的 2 多出來的數字向更高位產生乙個進製。如下圖所示,兩...
二進位制加法運算
兩個二進位制整數相加時,是位對位處理的,從最低的一對位 右邊 開始,依序將每一對位進行加法運算。兩個二進位制數字相加,有四種結果,如下所示 0 0 0 0 1 1 1 0 1 1 1 10 1 與 1 相加的結果是二進位制的 10 等於十進位制的 2 多出來的數字向更高位產生乙個進製。如下圖所示,兩...
二進位製雙精度加法運算
本實驗要求計算 x y z,將結果 z 輸出到螢幕,其中 x 001565a0h,y 0021b79eh。z 00371d3e 實驗利用累加器 ax,先求低十六位和,並存入低址儲存單元,後求高 16位和,再存入高址儲存單元。由於低位和可能向高位有進製,因而高位字相加語句需用 adc 指令,則低位相加...