2012-09-17 48 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

相关问题