在不使用除法算法的情況下,C++中是否有將十進制數轉換爲二進制數的函數? 我想計算2個數字的二進制格式的不同位。像diff(0,2)是1位。或diff(3,15)是2位。 我想寫diff功能。 謝謝二進制比較
二進制比較
回答
您可以通過計算兩個數字的xor中的位來找到不同位的數量。 就是這樣。
int count_bits(unsigned int n) {
int result = 0;
while(n) {
result += 1;
// Remove the lowest bit.
n &= n - 1;
}
return result;
}
int diff(unsigned int a, unsigned int b) {
return count_bits(a^b);
}
你能解釋這是如何工作的?我無法理解count_bits(a^b)如何運行? –
我感覺這是家庭作業 - 您可能想更多地解釋:p –
@Ava這是XOR。我解釋了我的答案意味着什麼。 – littleadv
您可以在序號使用XOR(如果Z = X XOR y時,其被不同地設置在X和Y將被設置爲在Z 1,所設置的相同的X的每個比特的每個比特和Y將被設置爲0),並使用簡單的循環和移位來計算結果的位數。
從技術上講,所有東西都已經是二元的。您只需要開始查看按位運算符來訪問組成您正在查看的十進制數的各個位。
例如,
if (15 & 1) would check to see if 15 has its first bit turned on.
if (15 & 3) would check to see if its first 2 bits were turned on.
if (15 & 4) would check to see if its 3rd bit only was turned on.
你可以用和/或/ XOR /等做到這一點。谷歌按位運算符並閱讀。
- 1. 二進制數比較
- 2. MySQL比較二進制排序與二進制字符串
- 3. 比較二進制整數ruby
- 4. 二進制搜索比較器
- 5. MySQL:高效的二進制值比較
- 6. 二進制搜索和eps比較
- 7. 比較兩個二進制向量
- 8. 圖靈機比較二進制
- 9. C比較二進制數與xor
- 10. 二進制搜索比較數
- 11. 比較兩個二進制文件
- 12. 二進制字符串比較
- 13. 如何在Python中進行安全的二進制比較?
- 14. 如何更好地理解每比較一次比較二進制搜索?
- 15. 什麼是二進制比較,它與文本比較有什麼不同
- 16. 二進制字符串比較/分類與字典字符串比較/排序
- 17. Python十六進制比較
- 18. dotNet十進制類型容易出現二進制比較錯誤嗎?
- 19. 祝福十六進制編輯器 - 比較2個二進制文件
- 20. 通過讀取二進制數據比較Python中的圖像
- 21. 二進制序列化與JSON與xml的比較
- 22. 比較字符串二進制(非字母數字字符)
- 23. 遞歸地比較目錄,忽略所有二進制文件:
- 24. 冗餘二進制表示中的比較RBR
- 25. SSIS使用條件拆分比較二進制列
- 26. 在mysql中使用二進制文本比較 - 效率陷阱?
- 27. 在C++上的二進制搜索與比較
- 28. 版本比較二進制文件在Python
- 29. 紅寶石二進制字符串比較
- 30. 如何使用二進制搜索比較x509certificates
你是什麼意思*「convert」*?任何數字*已經*爲二進制格式,您將顯示與實際存儲方式混淆在一起。但請記住;如果您要對浮點數執行按位運算,則需要知道它們的存儲方式。 –
數字以二進制格式存儲,不需要轉換。順便說一句,你正在尋找http://en.wikipedia.org/wiki/Hamming_distance。 –
我知道,但這是任何方式來顯示二進制格式的數字,而不用除法算法 –