Java數(shù)據(jù)結(jié)構(gòu)及算法實(shí)例:快速計(jì)算二進(jìn)制數(shù)中1的個(gè)數(shù)(Fast Bit Counting)
更新時(shí)間:2015年06月20日 11:10:45 投稿:junjie
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)及算法實(shí)例:快速計(jì)算二進(jìn)制數(shù)中1的個(gè)數(shù)(Fast Bit Counting),本文直接給出實(shí)現(xiàn)代碼,代碼中包含詳細(xì)注釋,需要的朋友可以參考下
/**
* 快速計(jì)算二進(jìn)制數(shù)中1的個(gè)數(shù)(Fast Bit Counting)
* 該算法的思想如下:
* 每次將該數(shù)與該數(shù)減一后的數(shù)值相與,從而將最右邊的一位1消掉
* 直到該數(shù)為0
* 中間循環(huán)的次數(shù)即為其中1的個(gè)數(shù)
* 例如給定"10100“,減一后為”10011",相與為"10000",這樣就消掉最右邊的1
* Sparse Ones and Dense Ones were first described by Peter Wegner in
* “A Technique for Counting Ones in a Binary Computer“,
* Communications of the ACM, Volume 3 (1960) Number 5, page 322
*/
package al;
public class CountOnes {
public static void main(String[] args) {
int i = 7;
CountOnes count = new CountOnes();
System.out.println("There are " + count.getCount(i) + " ones in i");
}
/**
* @author
* @param i 待測數(shù)字
* @return 二進(jìn)制表示中1的個(gè)數(shù)
*/
public int getCount(int i) {
int n;
for(n=0; i > 0; n++) {
i &= (i - 1);
}
return n;
}
}
您可能感興趣的文章:
- java數(shù)據(jù)結(jié)構(gòu)與算法之中綴表達(dá)式轉(zhuǎn)為后綴表達(dá)式的方法
- Java數(shù)據(jù)結(jié)構(gòu)及算法實(shí)例:考拉茲猜想 Collatz Conjecture
- Java數(shù)據(jù)結(jié)構(gòu)及算法實(shí)例:冒泡排序 Bubble Sort
- Java數(shù)據(jù)結(jié)構(gòu)及算法實(shí)例:樸素字符匹配 Brute Force
- java數(shù)據(jù)結(jié)構(gòu)和算法學(xué)習(xí)之漢諾塔示例
- Java數(shù)據(jù)結(jié)構(gòu)與算法入門實(shí)例詳解
相關(guān)文章
myBatis實(shí)現(xiàn)三級嵌套復(fù)雜對象的賦值問題
這篇文章主要介紹了myBatis實(shí)現(xiàn)三級嵌套復(fù)雜對象的賦值問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
java 中Object與Objects的區(qū)別在哪里
這篇文章主要介紹了java 中Object與Objects的區(qū)別說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05
Java中獲取?List中最后一個(gè)元素3種方法以及實(shí)際應(yīng)用
這篇文章主要給大家介紹了關(guān)于Java中獲取?List中最后一個(gè)元素3種方法以及實(shí)際應(yīng)用的相關(guān)資料,由于List的索引是從0開始的,所以最后一個(gè)元素的索引是List的大小減1,需要的朋友可以參考下2023-11-11
解決java.lang.NullPointerException報(bào)錯(cuò)以及分析出現(xiàn)的幾種原因
這篇文章介紹了解決java.lang.NullPointerException報(bào)錯(cuò)的方法,以及分析出現(xiàn)的幾種原因。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12

