操作:
- 先把第k位移到最后一位(右邊第一位)?
- 看個位是1還是0? ?
?
lowbit(x):返回x的最右邊的1。
原理:
?????????其中? ??
,意思是?
?是?
?的補碼。
? ? ? ???就可以求出最右邊的一位1。
?
應用:
???????? 當中
的個數。
int res = 0; // 1的個數
while(k>0){if((k&1)==1) res++; //個位是1k = k>>1; // 向右移一位
}
?
lowbit(x):返回x的最右邊的1。
?????????其中? ??
,意思是?
?是?
?的補碼。
? ? ? ???就可以求出最右邊的一位1。
?
???????? 當中
的個數。
int res = 0; // 1的個數
while(k>0){if((k&1)==1) res++; //個位是1k = k>>1; // 向右移一位
}
本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。 如若轉載,請注明出處:http://www.pswp.cn/news/717531.shtml 繁體地址,請注明出處:http://hk.pswp.cn/news/717531.shtml 英文地址,請注明出處:http://en.pswp.cn/news/717531.shtml
如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!