-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();     
    }
}

在上面执行 if 循环的函数中,我必须将十六进制转换为十进制,反之亦然。我不想将十六进制转换为十进制 10000 次。你能帮我将十进制转换为十六进制吗?十六进制数应该存储在无符号整数中。

4

1 回答 1

4

您不必执行任何转换。这些数字以二进制形式存储。在这种情况下,十六进制和十进制只是这些二进制数的不同文字或字符表示。

例子:

#include <iostream>

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

}
于 2012-09-17T16:46:48.503 回答