-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 ループを実行する上記の関数では、16 進数を 10 進数に、またはその逆に変換する必要があります。16 進数を 10 進数に 10000 回変換したくありません。10 進数を 16 進数に変換する方法を教えてください。16 進数は符号なし整数で格納する必要があります。

4

1 に答える 1

4

変換を実行する必要はありません。数値は 2 進数で格納されます。このコンテキストでは、16 進数と 10 進数は、これらの 2 進数の異なるリテラルまたは文字表現です。

例:

#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 に答える