按位与(&)运算的作用
按位與(&)其功能是參與運(yùn)算的兩數(shù)各對(duì)應(yīng)的二進(jìn)制位相與。只有對(duì)應(yīng)的兩個(gè)二進(jìn)制位均為1時(shí),結(jié)果位才為1,否則為0 。參與運(yùn)算的數(shù)以補(bǔ)碼方式出現(xiàn)。
1、請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù),輸入一個(gè)正數(shù),輸出該數(shù)二進(jìn)制表示中1的個(gè)數(shù)。
這里用到了這樣一個(gè)知識(shí)點(diǎn):把一個(gè)整數(shù)減去1,再和原整數(shù)做與運(yùn)算,會(huì)把該整數(shù)最右邊一個(gè)1變成0 。 那么一個(gè)整數(shù)的二進(jìn)制表示中有多少個(gè)1,就可以進(jìn)行多少次這樣的操作。
總結(jié):把一個(gè)整數(shù)減去1之后再和原來的整數(shù)做位與運(yùn)算,得到的結(jié)果相當(dāng)于是把整數(shù)的二進(jìn)制表示中的最右邊一個(gè)1變成0 。
2、輸入兩個(gè)整數(shù)m和n,計(jì)算需要改變m的二進(jìn)制表示中的多少位才能得到n。
解決方法:第一步,求這兩個(gè)數(shù)的異或;第二步,統(tǒng)計(jì)異或結(jié)果中1的位數(shù)。
3、用一條語句判斷一個(gè)整數(shù)是不是2的整數(shù)次方。
解決方法:一個(gè)整數(shù)如果是2的整數(shù)次方,那么它的二進(jìn)制表示中有且只有一位是1,而其它所有位都是0 。 根據(jù)前面的分析,把這個(gè)整數(shù)減去1后再和它自己做與運(yùn)算,這個(gè)整數(shù)中唯一的1就變成0了。
解答:!(x & (x - 1)
總結(jié)
以上是生活随笔為你收集整理的按位与(&)运算的作用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Appointment detail p
- 下一篇: UDO report generate