2012-09-17 52 views
-1
unsigned int hex_vale, some_decimal_constant, some_other_decimal_constant; 

for(10,000 times){ 
if(hex_value == some_decimal_constant){ 
     call_some_function(); 
    } 
else if(hex_value == some_other_decimal_constant){ 
     call_some_other_function();  
    } 
} 

在執行上面的函數時,如果循環我必須將十六進制轉換爲十進制,反之亦然。我不想將十六進制轉換爲十進制10000次。你能幫我轉換十進制到十六進制,十六進制數應該存儲在無符號整數。十進制到十六進制之間的轉換

+0

我認爲,如果你不能寫「10000次」在現實C++,你可能要開始有點低。 –

+0

您可以舉一個例子,說明如何在變量'hex_value'中放置一個值,使您認爲您需要進行一些轉換? – jxh

+0

Ajay Bidari,如果我們能看到更多的代碼,你的問題會更清楚。你能否創建一個完全符合你想要的程序?然後我們會更好地理解你的失蹤。 http://SSCCE.ORG –

回答

4

您不必執行任何轉換。數字以二進制形式存儲。在這種情況下,十六進制和十進制只是這些二進制數字的不同文字或字符表示。

例子:

#include <iostream> 

int main() 
{ 
    std::cout << std::boolalpha; 
    const int a = 32; 
    const int b = 0x20; 
    std::cout << (a==b) << "\n"; // prints "true" 

} 
+0

僅當十六進制數字以0x開頭時才爲真。讓我們假設hex_value不是以0x開頭,而是以十六進制數字開頭的.. –

+3

@ajaybidari如果它不以「0x」開頭,它不是C++中的十六進制數字。 – juanchopanza

相關問題