計算兩個數 不同位數的個數

2021-09-23 14:29:54 字數 415 閱讀 4829

先來分析一下,比如456和457,不同的位數即為1.

**異或是相同為0,不同為1.**我們可以使用異或來方便的解決這個問題,把這兩個數異或可以拿到乙個二進位制數,有多少個1就有多少不同的位數,所以主要任務就成為了如何拿到乙個數一的個數,

這最好的辦法就是每次右移一位,然後與1,這也是拿到1的個數的最便利的方法。

int diffbit(int m, int n)

return count;

}int main()

{ int m = 445;

int n = 447;

int num = diffbit(m, n);

printf("%d", num);

system("pause");

return 0;

找出不同的兩個數

有一組數,只有兩個不同的數,其他的數都有乙個相同的數,a1,a1,a2,a2,a3,a3,a4,a4,b,c,a5,a5.找出b,c.把陣列分成兩組a1,a1,a2,a2,b,和 a3,a3,a4,a4,c,然後,分別各自異或,即可得到b,c include using namespace std ...

求兩個數二進位制中不同位的個數,它來了!!

程式設計實現 兩個int 32位 整數m和n的二進位制表達中,有多少個位 bit 不同。輸入例子 1999 2299 輸出例子 7 1.先將 m 和 n 進行按位異或,此時m和n相同的二進位制位元位清零,不同的二進位制位元位為1 2.統計異或完成後結果 temp 的二進位制位元位中有多少個1即可 採...

leetcode 兩個陣列中位數

問題描述 給定兩個大小為 m 和 n 的有序陣列 nums1 和 nums2。請你找出這兩個有序陣列的中位數,並且要求演算法的時間複雜度為 o log m n 你可以假設 nums1 和 nums2 不會同時為空。示例 1 nums1 1,3 nums2 2 則中位數是 2.0 我的解答 packa...