假設有兩個整數a和b,並且我們知道a> b。我想計算我應該在b上做多少操作來獲得a(通過操作我的意思是按位操作從1變爲0,反之亦然)。如何計算這種變換的操作次數?將一個整數轉換爲另一個整數
2
A
回答
2
你在找什麼叫做Hamming distance。下面是我如何在C/C++中計算它:
unsigned hamdist(unsigned x, unsigned y)
{
unsigned dist = 0;
unsigned val = x^y;
// Count the number of set bits (Knuth's algorithm)
while(val)
{
++dist;
val &= val - 1;
}
return dist;
}
4
這將是異或b中的總體數量(1位數)
1
您正在尋找Hamming distance。這是兩個數字不同的位數,它給出了您的位數需要改變,以便使一個數字進入另一個。
相關問題
- 1. Ruby:將一個bitarray轉換爲整數
- 2. 將一個節點轉換爲整數
- 3. 將一個int數組轉換爲一個整數
- 4. 將一個「無限」浮點數轉換爲一個整數
- 5. 將一個整數數組轉換爲一個字符串
- 6. 將一串數字轉換爲一個整數數組
- 7. 如何將一串int整數轉換爲一個整數數組?
- 8. 可以將一個列表轉換爲一個整數
- 9. Python:將一個字符串轉換爲一個整數
- 10. 將一串數字轉換爲一個整數列表。 Python
- 11. 如何將一串數字轉換爲一個整數列表?
- 12. 將一串數字轉換爲一個整數,存儲結果
- 13. 如何將一個大整數除以另一個大整數?
- 14. 轉換JTextField輸入爲一個整數
- 15. 一個MYSQL_ROW轉換爲整數
- 16. C將兩個數字轉換爲一個整數
- 17. 如何確保一個整數整除另一個整數
- 18. 如何將一個整數分解爲一個整數數組
- 19. 轉換一個16位布爾數組爲一個整數
- 20. 有一個問題一個浮點數轉換爲整數(PHP)
- 21. 將私有整數設置爲另一個私有整數
- 22. 如何將一堆整數轉換/轉換爲一個雙精度數組?
- 23. 如何將一個整數轉換爲兩個並輕鬆地轉換轉換?
- 24. 轉換數組到一個整數
- 25. 如何將字符串轉換爲「[]」到一個整數數組
- 26. 將一個整數轉換爲字節數組
- 27. 如何將一個整數轉換爲R中的數據框?
- 28. 將單獨的數字轉換爲一個整數C++
- 29. 將整數對象的ArrayList轉換爲一個int數組?
- 30. 將兩個整數映射到另一個整數