二进制_简学:二进制数制的应用
設(shè)現(xiàn)有正整數(shù)150,二進(jìn)制形式為10010110,現(xiàn)有如下題目,求其盡可能簡(jiǎn)單的解法。
題目一:判斷該正整數(shù)是否是2的乘方;
解法:
由上表可以看出2的乘方的二進(jìn)制形式只有一個(gè)bit為1,因此判斷一個(gè)正整數(shù)A是否為2的乘方,可以判斷A&(A-1)是否等于0,若結(jié)果為0,則是2的乘方,若不為0則不是2的乘方。
題目二:判斷正整數(shù)是否能被4整除;
解法:
一個(gè)正整數(shù)可以將其表示為A=M*8+N;M是A的高位bit組成的數(shù)字,N是低三位bit組成的數(shù)字,例150=(10010)18*8+6;因?yàn)镸*8是能被4整除的,因此只需判斷N能否被4整除即可,從上式可以看出150的N值不能被4整除,所以該正整數(shù)不能被4整除。
題目三:不用乘法器求該正整數(shù)*3的結(jié)果;
解法:
根據(jù)上表一個(gè)正整數(shù)A*2的結(jié)果為將該正整數(shù)的二進(jìn)制左移一個(gè)bit位,并低位補(bǔ)0。因此求一個(gè)正整數(shù)*3的結(jié)果根據(jù)乘法的基本定律得到:A*3=A*(2+1)=A*2+A,而A*2可以轉(zhuǎn)換為左移補(bǔ)0的動(dòng)作,因此A*3可以轉(zhuǎn)換為不用乘法器的運(yùn)算。
題目4:求一個(gè)未知整數(shù)除以7的余數(shù),該整數(shù)的范圍為0-255,要求不使用除法器;
解法:該整數(shù)的最大可能值為255,因此該整數(shù)的二進(jìn)制形式可以用8個(gè)bit位表示X7X6X5X4X3X2X1X0;根據(jù)題目二的思想,可以將該整數(shù)表示為A=X7*128+X6*64+X5*32+X4*16+X3*8+X2*4+X1*2+X0;
A/7=(X7*128+X6*64+X5*32+X4*16+X3*8+X2*4+X1*2+X0)/7;
A/7=X7*(128/7)+X6*(64/7)+X5*(32/7)+X4*(16/7)+X3*(8/7)+(X2*4+X1*2+X0)/7;
根據(jù)除法的基本定律可以知道除法結(jié)果=商和余數(shù):
分別計(jì)算上式的元素:
根據(jù)除法的基本定律可以得出A/7:
余P:X7*2+X6*1+X5*4+X4*2+X3*1+X2*4+X1*2+X0
=X7X6+X5X4X3+X2X1X0(P的最大值3+7+7=17)
商Q:X7*18+X6*9+X5*4+X4*2+X3*1+0
=9*X7X6+X5X4X3
由上式可以看出余數(shù)P的最大值可能為17因此余數(shù)P還能除以7;
因此真正的余數(shù)和商等于:
余:P/7取余p;商:Q+P/7取商q
因?yàn)镻的值為0-17是有限的值,因此可以枚舉求其商和余數(shù):
case(P)
0:q=0;p=0;
1:q=0;p=1;
2:q=0;p=2;
。。。。。
17:q=2;p=3;
得到一個(gè)0-255的未知整數(shù)除以7的最終結(jié)果:
商=Q+q=9*X7X6+X5X4X3+q;余數(shù)=p,pq可有case(P=X7X6+X5X4X3+X2X1X0)求得,因此整個(gè)運(yùn)算不需要用到除法器。
總結(jié)
以上是生活随笔為你收集整理的二进制_简学:二进制数制的应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 隐藏水滴屏的软件_屏下摄像头,实现这一全
- 下一篇: 股票低开是主力跑了吗?