一個整數中二進制的位數


世界上有10種人,一種懂二進制,一種不懂。那麼你知道兩個int32整數m和n的二進制表達,有多少個位(bit)不同麼?


public int countBitDiff(int m, int n) {
int k = m ^ n;//求出k中1的個數即可
int bit = 1;
int count = 0;
while(bit != 0){
if((bit & k) != 0){//該二進制為1
count++;
}
bit <<= 1;
}
return count;
}

0 個評論

要回覆文章請先登錄註冊